Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.22;
Скачать: CL | DM;

Вниз

Как подружить COM, TDataSet и ASP?   Найти похожие ветки 

 
ddenis   (2003-08-29 00:31) [0]

Приветствую!

Ситуация такова. Пишу на Delphi COM-объект, и вот приспичило написать метод, который бы возвращал набор данных, но как это сделать? Т.е. порядок такой - в asp-файле создается этот объект, вызывается метод, в этом методе происходит обращение к базе данных и я хочу, чтобы этот метод вернул набор данных, как это делает следующая конструкция:

set con = Server.CreateObject("ADODB.Connection")
con.Open...
set rs = con.Execute("exec my_stored_proc")

В результате с rs можно работать:

while not rs.EOF
...
rs.MoveNext
wend

Вот все это заменить бы на что-то вроде

set my_obj = Server.CreateObject("my_dll.my_com_obj")
set rs = my_obj.GetDataSet
while not rs.EOF
...
rs.MoveNext
wend

Как это сделать на уровне COM-объекта, т.е. в Delphi? Какой тип должен быть у возвращаемого значения, какие нужны преобразования на Delphi и в ASP? Надеюсь, понятно объяснил... Всем спасибо...


 
Rad ©   (2003-08-29 01:01) [1]

А в СОМ-объекте же у тебя ADO для соединения с ASP используется? Ну вот и передавай _Recordset (у меня лично ситуация чуть другая, но код QueryResultAsADORecordSet:= CreateOleObject("ADODB.Recordset") as _Recordset; вполне работает.
Тип OleVariant замечательным образом этот самый рекордсет передаст куда угодно (причем, рекордсет м.б. и отсоединенным от БД).
Если пользуешься компонентами ADO, то используй свойство Recordset.
Всё :)


 
Rad ©   (2003-08-29 01:05) [2]

> ddenis (29.08.03 00:31)
Немного сумбурно получилось :(
Вкратце: из Delphi передаем результат запроса в виде объекта ADODB.Recordset, помещая его в OleVariant.
В ASP, собственно, код вполне может выглядеть точно так, как ты написал в исходном вопросе.


 
ddenis   (2003-08-29 09:10) [3]

Rad, спасибо большое, попробую.



Страницы: 1 вся ветка

Текущий архив: 2003.09.22;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.038 c
1-71625
Вован
2003-09-09 11:57
2003.09.22
Что-то не получается в TPopumMenu один из TMenuItem сделать


3-71542
grusty
2003-08-29 17:34
2003.09.22
Проблема с Locate в ADO...


3-71516
Петр
2003-09-01 05:12
2003.09.22
Создание отчетов в RAVE


4-72001
off
2003-06-11 12:45
2003.09.22
Передача кусора другому окну.


1-71626
Сергей Суровцев
2003-09-08 22:40
2003.09.22
RichEdit - отключение смены языка