Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2013, 16:54   #1
anghela
Пользователь
 
Регистрация: 21.05.2013
Сообщений: 42
По умолчанию помогите разобраться с пакетной передачей данных

Здравствуйте! Помогите, пожалуйста, разобраться с пакетной передачей данных в Делфи. Может, у кого-нибудь есть источники информации, где это можно подробно изучить, или может кто-нибудь подробно расскажет что к чему. Очень надо. Нужно из текстовых полей на форме (на стороне клиента) взять данные и с помощью пакетов передать их на сторону сервера в БД. На сервере хранится только БД. Спасибо
anghela вне форума Ответить с цитированием
Старый 18.11.2013, 17:10   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

На данный момент при такой постановке задачи это не возможно )
Так что подробно рассказывай про сервер, какое СУБД, как к нему по сети можно достучаться и т.д.
Одно дело через ADO посылать запросы в СУБД, другое дело писать программу, а она уже либо по НTTP, либо по RPC либо еще как будет взаимодействовать с удаленным компом.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.11.2013, 17:40   #3
anghela
Пользователь
 
Регистрация: 21.05.2013
Сообщений: 42
По умолчанию

На самом сервере находится только СУБД MS Access. Подключение к нему еще не готово. Нужно разобраться со всем, что связано с пакетами. Передавать данные можно любым способом, хоть по сети Интернет, хоть по портам и т.д. Главное, сделать саму передачу. Т.е. в итоге на форме клиента я заполняю поля, произвожу расчеты, затем пакетами передаю эти данные каким-то способом на сервер. Проверяю можно ли добавить данные в таблицу (вдруг например такую запись в базу добавить не возможно, т.к. существует идентичная запись), либо я проверяю по базе на сервере какое то условие, и, наконец отправляю на форму клиента ответ в виде данных из таблице, либо с отказом занесения данных в СУБД
anghela вне форума Ответить с цитированием
Старый 18.11.2013, 18:31   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тогда без вариантов - делать свою серверную программу. Под Делфи можно использовать компоненты INDY.
В данном случае можно попробовать FTP компоненты, поскольку тебе конче потрибно именно пакетная передача. Хотя я бы наверное использовал HTTP, он как-то проще.

По поводу FTP (если принимаешь идею) механизм следующий:
1) Организовываешь приложение с FTPServer. В его обработчике получения файла считываешь из файла строки и скармливаешь их самому Акцессу:
Код:
procedure TForm1.FtpServerStoreFile(ASender: TIdFTPServerContext;
  const AFileName: string; AAppend: Boolean; var VStream: TStream);
var st:TstringList; i:integer;
begin
 VStream.position:=0;
 st:=TStringList.create;
 st.LoadfromStream(VStream);
 for i:=0 to st.count-1 do begin
  в st[i] очередной запрос
 end;
 st.free;
end.
2) Клиент у себя формирует в памяти файл и отсылает его на FTP
Код:
var st:TStringStream; i:integer;
begin
 st:=TStringStream.create;
 for i:=0 to st.count-1 do begin
  st.write(тут типа запрос)
  st.write(#13#10);
 end;
 ftp.Put(st,''); // Это компонент FTPClient
 st.free;
end.
Ну вот так-то как-то...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.11.2013, 21:32   #5
anghela
Пользователь
 
Регистрация: 21.05.2013
Сообщений: 42
По умолчанию

спасибо. Буду пробовать
anghela вне форума Ответить с цитированием
Старый 18.11.2013, 22:53   #6
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Так а подключаться к аксесу готовым компонентом разве нельзя? Это ж тоже "пакетная передача", на самом деле )
Son Of Pain вне форума Ответить с цитированием
Старый 18.11.2013, 23:14   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
подключаться к аксесу готовым компонентом
Ну вдруг этот акцесс должен быть по законам безопасности защищен от вездействия извне? У меня на работе тоже такие приложения есть.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.11.2013, 23:31   #8
Son Of Pain
Участник клуба
 
Регистрация: 23.12.2010
Сообщений: 1,129
По умолчанию

Тогда проще всего обмениваться запросами напрямую, думаю, без ftp и http. т. е. серверная часть держит соединение с базой данных через стандартный AdoConnection (или как там оно в делфи называется), принимает sql-запросы от клиента, передает их аксесу, получает результат и отправляет его обратно клиенту. Ну а клиентская часть, соответственно, подключается к серверной, шлет sql-запрос, получает ответ и показывает его на форме.

А еще можно попробовать покурить вот это, если лень изобретать свой велосипед - http://office.microsoft.com/en-us/ac...010356866.aspx
Son Of Pain вне форума Ответить с цитированием
Старый 19.11.2013, 00:17   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
проще всего обмениваться запросами напрямую
Да, но я предложил FTP потому что удобно им передавать данные типа файлов, меньше писанины будет - сам так делаю.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
connect с передачей данных в слот NataPl Qt и кроссплатформенное программирование С/С++ 1 12.10.2013 11:10
Проблема с передачей данных tools Общие вопросы C/C++ 5 25.12.2010 14:49
Помогите разобраться с лабораторной по динамическим структурам данных TiK_Tak Помощь студентам 8 25.11.2009 13:32
Помогите разобраться в формате данных Tada-YO Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 18.11.2009 20:41
Проблема с передачей данных методом POST Aiden Работа с сетью в Delphi 0 21.09.2008 21:11