Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.09.22;
Скачать: [xml.tar.bz2];

Вниз

Как подружить 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.019 c
1-71716
Kremen
2003-09-10 16:40
2003.09.22
Есть ли функция или оператор для сложения по модулю 2? Подскажите


1-71683
некто
2003-09-11 12:05
2003.09.22
встроенный SMTP


7-71981
KILLER_ABV
2003-07-09 15:33
2003.09.22
Мыш и клава


1-71678
LinOS
2003-09-11 12:14
2003.09.22
Как при нажатии на кнопку добавить в MainMenu пункты из PopupMenu


8-71759
LOX
2003-05-25 11:23
2003.09.22
Звуковое сопровождение





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский