![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
передача файла через midas [D7, firebird]
Nortsov © (2005-11-18 10:50:00)Привет всем
Кто пробовал передавать файлы от сервера к клиенту через midas (сокетное соединение). В статье "Midas и COM. Советы и Приемы" с этого сайта это описано, но пока у меня не получилось реализовать эту технологию
Romkin (2005-11-18 16:22:00) [1]Интерфейс уже есть, если есть Remote Data Module. См библиотеку типов сервера (view type library)
Vlad (2005-11-18 16:17:00) [2]
> Nortsov (18.11.05 15:57) [7]
> хорошо, а в каком месте объявить соотв.интерфейс и реализацию
> его методов? в обработчике при создании формы?
Интерфейс объявляется и реализуется в серверном COM-объекте.
(Про создание COM объектов лучше все-таки почитать умную книжку)
Клиент, используя, например SocketConnection, вызывает метод этого интерфейса.
Nortsov (2005-11-18 15:57:00) [3]хорошо, а в каком месте объявить соотв.интерфейс и реализацию его методов? в обработчике при создании формы?
Digitman (2005-11-18 13:29:00) [4]
> на сервере что должно быть?
объявление соотв.интерфейса и реализация его методов.
> на клиенте при запросе файла серверу надо передавать имя
> файла
самому дотумкать так уж трудно ?
function GetFile(FileName: OleVariant) : OleVariant; safecall;
..
FileData := IMyAppServer(MySocketConnection.AppServer).GetFile('такой-то');
Nortsov (2005-11-18 12:09:00) [5]а можно чуть подробнее на сервере что должно быть? Я так понимаю определение интерфейса
IMyAppServer = interface(IAppServer)
..
function GetFile: OleVariant; safecall;
..
end;
в GetFile стоит считывание файла типа Readln(AFile, Rec);
?
а на клиенте при запросе файла серверу надо передавать имя файла
var
FileData: OleVariant;
..
FileData := IMyAppServer(MySocketConnection.AppServer).GetFile;
?
Nortsov (2005-11-18 11:31:00) [6]ок, щас попробую, в статье то по другому было написанно :-(
Digitman (2005-11-18 11:21:00) [7]
> Nortsov (18.11.05 11:09) [2]
что-то я не понял, причем здесь какой-то DatasetProvider и ClientDataSet..
тебе же нужно просто передать из Арр-сервера клиентской стороне содержимое некоего файла ?
Ну так объяви и реализуй соответствующий метод интерфейса Арр-сервера !
IMyAppServer = interface(IAppServer)
..
function GetFile: OleVariant; safecall;
..
end;
var
FileData: OleVariant;
..
FileData := IMyAppServer(MySocketConnection.AppServer).GetFile;
Nortsov (2005-11-18 11:09:00) [8]проблема в том что не получается, в статье написанно, что надо создать DatasetProvider и ClientDataSet, но при открытии клиента возникает ошибка Missing DataSet property т.к., действительно его нет, он должен крейтится в обработчике BeforeGetRecirds Датасет провайдера
Digitman (2005-11-18 10:53:00) [9]и в чем проблема ?