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

Вниз

Как передать данный из DLL в exe?   Найти похожие ветки 

 
Киря   (2005-02-10 09:14) [0]

Моё приложение состоит из основного файла exe и нескольких DLL. Одна из этих DLL подключается к базе MS SQL и запускает хранимую процедуру и в результате получает таблицу. Мне нужно передать эту таблицу в моё приложение


 
stone ©   (2005-02-10 09:30) [1]

Если работаешь через ADO, то передавай _Recordset как возвращаемый параметр.


 
Киря   (2005-02-10 09:48) [2]

А ка потом мне отобразить результат в DBGrid"е в приложении?


 
Ega23 ©   (2005-02-10 09:49) [3]

Через TDataSource


 
Киря   (2005-02-10 09:56) [4]

to Ega23
А можно кусочек кода?


 
Ega23 ©   (2005-02-10 10:04) [5]

2 Киря   (10.02.05 09:56) [4]

А можно немножко денег?


 
Киря   (2005-02-10 10:09) [6]

А прошу подсказать мне всего одну строку кода в которой TDataSource получает _recordSet


 
Danilka ©   (2005-02-10 10:20) [7]

Почитай внимательно справку по TCustomADODataSet.RecordSet


 
sniknik ©   (2005-02-10 10:43) [8]

> Ю А прошу подсказать мне всего одну строку кода в которой TDataSource получает _recordSet

result:= AdoCommand.Execute;
(естественно рекордсет не в TDataSource присваивается а возвращается из функции, результат которой уже внужное место (жал план в 1 строчку не могу превысить ;о))))
p.s. придется всетаки хелп читать наверное.


 
Киря   (2005-02-12 05:10) [9]

Насколько я знаю это форум создан специально для того, что бы более опытные программисты помогали таким ламерам как я. И если на большинство вопросов писать Смотри HELP то как я понимаю нет смысла в этом форуме.
И если у вас нет желания помогать начинающим программистам то лучше тогда вообще не отвечать.
В Help"е я нашел всего 1 пример
ADODataSet1.Recordset := ADOCommand1.Execute;
Мне он не очень помог:
Когда я присваиваю ADODataSet.recordset _recordset полученный из DLL, а после активирую ADODataSet то получаю ошибку, что ADODataSet.connection пуст
Как мне исправить эту ошибку или какой другой компонент использовать?


 
sniknik ©   (2005-02-12 12:36) [10]

у каждого свое понимание "высшего смысла" форума, по мне так он для того чтобы общатся и решать сообща проблемы, которые в одиночку решить проблемно.

> Как мне исправить эту ошибку или какой другой компонент использовать?
для того чтобы исправить эту ошибку надо как минимум знать в чем она, а для того чтобы понять на растоянии необходима как можно полная (но не напряжная) инфа о ней.
поясню. вот если бы ты сделал тест на десяток строчек (а не в полкилометра), в которых эта ошибка выделена, и показал бы ее, описал когда проявляется, вот тогда возможно ктонибудь и узнает ее (или захочет проверить). беда в том, те кто начинают говорить так как ты относятся к форуму потребительски, типа обязаны помочь и все тут. а никто не обязан, заинтересуеш своей "проблемой" помогут (скорее всего), нет, ну так и нет.

ладно, это лирика. по проблеме, хотя заметь она мне неинтересна, как может быть интересно то о чем пишут не далее как на 20й странице любой книги по дельфям?, поэтому просто намек, проверь соглашения о вызовах, должны совпадать, и прочитай предупреждение которое в созданой dll мастеров как коментарий вставляется. может помочь (хотя не наверняка, т.к. инфы нет, то это догадки).


 
Киря   (2005-02-12 14:45) [11]

Я не считаю, что мне обязаны помогать. Я говорю о том, что не стоит обсерать и подкалывать тех кто знает меньше вас.

procedure TForm1.Button1Click(Sender: TObject);
var
rec: variant;
begin
rec:=getmess(); // здесь я получаю _recordSet из DLL
//Что мне сделать дальше, что бы отобразить этот recordset в DBgrid"e?

end;


 
Black ©   (2005-02-12 15:12) [12]

Исправление предыдущего поста

procedure TForm1.Button1Click(Sender: TObject);
var
rec: _recordset;
begin
rec:=getmess(); // здесь я получаю _recordSet из DLL
//Что мне сделать дальше, что бы отобразить этот recordset в DBgrid"e?

end;


 
Киря   (2005-02-12 15:16) [13]

наконец то исправил всё работает

function getmess:_recordset; external "dostup.dll";
procedure TForm1.Button1Click(Sender: TObject);
var
rec: _recordset;
begin
rec:=getmess();
ADOStoredProc1.Recordset:=rec;
ADOStoredProc1.Active:=true;
end;


 
sniknik ©   (2005-02-12 17:55) [14]

> наконец то исправил всё работает
сомнительно что все. ;о))

вот такой вариант (что ты его даже не присваиваеш), я не рассматривал... ранее то вроде писал что знаеш как -> [9] ADODataSet1.Recordset := ADOCommand1.Execute;
думал действительно "проблема".

кстати код неправильный...  который в -> Киря   (12.02.05 15:16) [13]
ADOStoredProc1.Active:=true;
лишнее, если передача работает, то простого присвоения рекордсета достаточно, а если оно передаст nil то активация просто откроет новый рекордсет который получит собственным запросом.
(дополнительная переменная тоже, но это не "криминал" в конце концов оптимизатор ее выкинет)



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

Форум: "Базы";
Текущий архив: 2005.03.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.032 c
1-1109051804
Dil
2005-02-22 08:56
2005.03.13
TTreeView Nodes


4-1107128420
Intelect
2005-01-31 02:40
2005.03.13
Как программно загрузить драйвер в память! SYS!


1-1109696237
T-LIS
2005-03-01 19:57
2005.03.13
Файл-менеджер.


1-1109478796
АлексН
2005-02-27 07:33
2005.03.13
Замена Application.ProcessMessages


14-1109023226
ArMellon
2005-02-22 01:00
2005.03.13
SocketA(462)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский