Форум: "Начинающим";
Текущий архив: 2009.07.12;
Скачать: [xml.tar.bz2];
ВнизTAdoConnection в DLL Найти похожие ветки
← →
Rimdus (2009-05-19 08:57) [0]Добрый день!
Не удается пеедать TAdoConnection - действующий конект приложения к БД ms sql 2000.
в DLL
function ShowForm(App, form: THandle; FormName:PChar; Con:TADOConnection):Cardinal;
...
ADOConnectionGlobal:=Con; // ADOConnectionGlobal глобальная переменная
ADOQuery1.Connection:=TADOConnection(ADOConnectionGlobal);
собственно вызов
ADOQuery1.Open
Ругается: Missing Connection or Connection String
Из главного exe все работает корректно.
← →
Сергей М. © (2009-05-19 09:09) [1]
> ADOQuery1.Connection:=TADOConnection(ADOConnectionGlobal);
Зачем это приведение типа ?
← →
Palladin © (2009-05-19 09:15) [2]
> Не удается пеедать TAdoConnection
Кому пеедать и от кого?
← →
Slym © (2009-05-19 09:51) [3]Rimdus (19.05.09 8:57)
Build with runtime packages
← →
Rimdus (2009-05-19 10:15) [4]Palladin © (19.05.09 09:15)
Из основного модуля программы в dll, где находится компонент TAdoQuery
Сергей М. © (19.05.09 09:09)
> Зачем это приведение типа ?
ADOQuery1.Connection:=ADOConnectionGlobal;
Так тоже не работает
Slym © (19.05.09 09:51)
> Build with runtime packages
Результата не дало.
← →
Сергей М. © (2009-05-19 10:28) [5]
> Rimdus (19.05.09 10:15) [4]
> Так тоже не работает
Если ни так ни сяк не работает, то зачем приведение типа ? Зачем лишние буковки писать ?)
Если
> Build with runtime packages
>
> Результата не дало.
значит либо Con = nil либо Con.ConnectionString = ""
Что собссно и следует из сообщения
Missing Connection or Connection String
← →
Ega23 © (2009-05-19 10:31) [6]Нафига тебе в DLL коннект передавать??? Передавай ConnectionString, а в DLL уже отдельный коннект создавай.
Не, конечно, если ты мазохист, то тогда я свой вопрос и совет отзываю.
← →
Rimdus (2009-05-19 10:32) [7]< Сергей М. © (19.05.09 10:28)
< значит либо Con = nil либо Con.ConnectionString = ""
Если это так, то значит как то не так надо передавать? Вопрос как?
То что передаю именно "живой" объект с ConnectionString <> "" - это точно, т.к. перед этим пользуюсь им в exe модуле и ошибок не возникает.
← →
Rimdus (2009-05-19 10:34) [8]> Ega23 © (19.05.09 10:31) [6]
>Нафига тебе в DLL коннект передавать??? Передавай ConnectionString, а в >DLL уже отдельный коннект создавай.
>Не, конечно, если ты мазохист, то тогда я свой вопрос и совет отзываю.
Очень нужно пользоваться именно одним коннектом, т.к. в p-таблица по spid лежат нужные данные, такова задуманная архитектура.
← →
Медвежонок Пятачок © (2009-05-19 10:34) [9]коннекшн стринг - длинная строка, несмотря на то, что это свойство класса.
на нее действуют все заморочки с передачей длинных строк в/из длл.
← →
Сергей М. © (2009-05-19 10:35) [10]
> То что передаю именно "живой" объект с ConnectionString
> <> "" - это точно
Значит Build with runtime packages у тебя = false.
А д.б True и в хост-приложении и в dll-модуле.
И вообще - экий ты упрямый).. Не так давно, помнится, тебе разжевывали про bpl vs dll, почему у тебя по сей день формы в dll фигурируют ?
← →
Ega23 © (2009-05-19 10:36) [11]
> Вопрос как?
Начать надо с попытки понять: а что такое dll? Как оно работает? Что такое менеджер памяти? Что такое RTTI и что такое строка? Что такое счётчик ссылок на строку?
И вот уже потом задаться вопросом: а для чего мне нужна dll в качестве архитектурного решения разработки приложения?
← →
Плохиш © (2009-05-19 10:45) [12]
> Очень нужно пользоваться именно одним коннектом, т.к. в
> p-таблица по spid лежат нужные данные
Какая связь между этими фразами?
Может пора основы теории баз данных почитать?
← →
Slym © (2009-05-19 10:53) [13]Rimdus (19.05.09 10:15) [4]
Slym © (19.05.09 09:51)
> Build with runtime packages
Результата не дало
и приложение и dll vcl;rtl;dbrtl;vcldb;adortl;
← →
Медвежонок Пятачок © (2009-05-19 12:14) [14]и не даст.
длл теперь надо превратить в bpl
← →
Игорь Шевченко © (2009-05-19 12:27) [15]
> длл теперь надо превратить в bpl
а что, если DLL и хост собрать с bpl, разве это не поможет ? Обязательно надо из DLL BPL делать ? Это только с ADO такие странности ?
← →
Rimdus (2009-05-19 13:55) [16]Собственно Сергей М. © (19.05.09 10:28) [5]
был прав. Решилось все с помощью установки директивы stdcall. Как-то я ее забыл написать :)))
Теперь нормально передется и работает без всяких "Build with runtime packages" и дополнительных модулей.
Всем спасибо!
← →
Сергей М. © (2009-05-19 14:00) [17]
> Сергей М. .. был прав. Решилось все с помощью установки директивы stdcall.
Где я говорил про stdcall ?)
Строго говоря, не нужна она в твоей ситуации, НИГДЕ не нужна.
И решение, если уж на то пошло, не в установке этой недостающей директивы, а в удалении имеющейся)
← →
Rimdus (2009-05-19 16:57) [18]>Сергей М. © (19.05.09 14:00) [17]
>Где я говорил про stdcall ?)
>Строго говоря, не нужна она в твоей ситуации, НИГДЕ не нужна.
>И решение, если уж на то пошло, не в установке этой недостающей >директивы, а в удалении имеющейся)
>>>> значит либо Con = nil либо Con.ConnectionString = ""
Вот как раз из-за отсутствия stdcall
Con был равен nil, т.е. видимо параметры передавались не в той последовательности
← →
Ega23 © (2009-05-19 17:06) [19]
> Теперь нормально передется и работает без всяких "Build
> with runtime packages" и дополнительных модулей.
Потерпи чуть-чуть, скоро начнётся. Всякое. :)))
← →
Сергей М. © (2009-05-19 17:12) [20]
> Вот как раз из-за отсутствия stdcall
> параметры передавались не в той последовательности
Так а за каким же шишом ты передаешь их в другой последовательности-то ?
Передавай безо всяких stdcall, тогда и для приема stdcall не понадобится)
Ты же бездумно влупил этот stdcall в хост-приложении, а потом пришлось влупить его еще и в dll, в то время как он тебе нафих не нужен ни там ни сям)
← →
Rimdus (2009-05-19 18:46) [21]>Сергей М. © (19.05.09 17:12) [20]
>Так а за каким же шишом ты передаешь их в другой >последовательности-то ?
>Передавай безо всяких stdcall, тогда и для приема stdcall не >понадобится)
>Ты же бездумно влупил этот stdcall в хост-приложении, а потом >пришлось влупить его еще и в dll, в то время как он тебе нафих не >нужен ни там ни сям)
Ничего подобного, в хост-приложении не было и в длл не было stdcall
← →
Ega23 © (2009-05-19 18:57) [22]
> Ничего подобного, в хост-приложении не было и в длл не было
> stdcall
Сказки не рассказывай.
← →
Сергей М. © (2009-05-19 19:54) [23]
> Rimdus (19.05.09 18:46) [21]
Ну ты и крендель))
А зачем же тогда добавил, если не было ? Да еще и на меня сослался, мол, я тебе насоветовал ?)
← →
Rimdus (2009-05-20 07:23) [24]Да. Действительно. Убрал и в ехе и в длл, все равно работает )))
← →
Плохиш © (2009-05-20 11:00) [25]Кодирование методом тыка...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.07.12;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.004 c