![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сервер приложений [D6]
Alex_Sudakov © (2002-11-18 11:06:00)Подскажите, где в инете почитать на тему создания сервера приложений на Delphi 6.
asmith (2002-11-19 18:44:00) [1]Вот вполне работающий код:
1. На сервере приложений описан метод
function GetRecordset(const ConnectionString,QueryString: WideString): OleVariant; safecall;
2. Реализован так:
function TSQLAccessDriver.GetRecordset(const ConnectionString,QueryString: WideString): OleVariant;
var
Data : Recordset;
begin
Data := CoRecordset.Create;
try
//Open recordset
Data.CursorLocation := adUseClient;
Data.Open(QueryString, ConnectionString, adOpenKeyset, adLockBatchOptimistic, adCmdText);
// Disconnect from the database
Data.Set_ActiveConnection(nil);
Result := Data;
finally
Data := nil;
end;
end;
Здесь работа с ланными идет через ADO, но компоненты не используются - работаем прямо с ADO-интерфейсами.
3. В клиенте на форме связка TDBGrid-TDataSource-TADOTable, читаем рекордсет:
var
strHostName : string;
szSQL : WideString;
szConn : WideString;
srv : IDataAccessManager;
...
try
strHostName := "bla-bla";
szConn := "bla-bla";
szSQL := "select * from bla-bla";
srv := CoDataAccessManager.CreateRemote(strHostName);
ADOTable1.Recordset := IUnknown(rec.GetData(szConn, szSQL)) as _Recordset;
finally
srv := nil;
end;
...
Все.
Alex_Sudakov (2002-11-19 10:45:00) [2]Сделал. Вот только при попытке установить connect=true, сервер виснет напрочь...:(
stone (2002-11-18 15:09:00) [3]Alex_Sudakov © (18.11.02 14:40)
> DataSetProvider, но вот как его в интерфейс засунуть
в DataModule сервера приложений
а в клиенте Connection и ClientDataSet
Romkin (2002-11-18 15:04:00) [4]http://delphi.mastak.ru/articles/midas2/index.html
и тому подобное
Alex_Sudakov (2002-11-18 15:02:00) [5]Хочется увидеть пример, не более...
Opuhshii (2002-11-18 14:52:00) [6]IAppServer,.. + есть статья о мидас здесь...
"там голая теория. А ее я уже знаю...", а вам что нужно? компонент TCoolProgramWhatIWish?,..
Alex_Sudakov (2002-11-18 14:40:00) [7]Смысл в том, что надо из этого сервера на запрос (вызов метода), возвращать DataSet(к примеру). Как это сделать? Нашел таку вещь, как DataSetProvider, но вот как его в интерфейс засунуть... Что б на удаленной машине можно было сделать примерно так:
...
Obj:=CreateOLEObject("MyServer.MyObject");
DataSet:=Obj.GetDataSet;
...
stone (2002-11-18 13:35:00) [8]а что тебя конкретно интересует, я как раз этим занимаюсь
Alex_Sudakov (2002-11-18 13:29:00) [9]На счет compress.ru - там голая теория. А ее я уже знаю...:)
Alex_Sudakov (2002-11-18 13:27:00) [10]2Олег: Ага. Только вопросы лучше в мыло...:)
stone (2002-11-18 13:23:00) [11]www.compress.ru
журнал компьютер-пресс
там были статьи на эту тему
я слышал ты в старую команду "а-ля Капитоныч" вернулся
Alex_Sudakov (2002-11-18 13:21:00) [12]Сервер приложений - в смысле сервер приложений. COM приложение, у которого есть свойства и методы, и доступное с другой машины.
ЗЫ Интересует в конечном счете DCOM.
ЗЗЫ Есть великолепная статья Натальи Елмановой "Создание сервера приложений в Delphi 3", но она ксожалению уже не актуальна... Так что хочется что-нить вроде, но для D6-7.
han_malign (2002-11-18 13:13:00) [13]В каком смысле сервер приложений(монитор что ли), и при чем здесь версия Delphi?
Alex_Sudakov (2002-11-18 13:05:00) [14]Люди! Эй! Есть тут кто-нить? :)
Alex_Sudakov (2002-11-18 11:27:00) [15]А лучше даже если под D7 :)