Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TAdoConnection в DLL [MSSQL]


Страницы:   1 2

Rimdus ©   (2009-05-19 08:57:00) 

Добрый день!

Не удается пеедать 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-20 11:00:00) [1]

Кодирование методом тыка...


Rimdus   (2009-05-20 07:23:00) [2]

Да. Действительно. Убрал и в ехе и в длл, все равно работает )))


Сергей М.   (2009-05-19 19:54:00) [3]


> Rimdus   (19.05.09 18:46) [21]


Ну ты и крендель))

А зачем же тогда добавил, если не было ? Да еще и на меня сослался, мол, я тебе насоветовал ?)


Ega23   (2009-05-19 18:57:00) [4]


> Ничего подобного, в хост-приложении не было и в длл не было
> stdcall


Сказки не рассказывай.


Rimdus   (2009-05-19 18:46:00) [5]

>Сергей М. ©   (19.05.09 17:12) [20]
>Так а за каким же шишом ты передаешь их в другой >последовательности-то ?
>Передавай безо всяких stdcall, тогда и для приема stdcall не >понадобится)
>Ты же бездумно влупил этот stdcall в хост-приложении, а потом >пришлось влупить его еще и в dll, в то время как он тебе нафих не >нужен ни там ни сям)

Ничего подобного, в хост-приложении не было и в длл не было stdcall


Сергей М.   (2009-05-19 17:12:00) [6]


> Вот как раз из-за отсутствия stdcall


> параметры передавались не в той последовательности


Так а за каким же шишом ты передаешь их в другой последовательности-то ?
Передавай безо всяких stdcall, тогда и для приема stdcall не понадобится)
Ты же бездумно влупил этот stdcall в хост-приложении, а потом пришлось влупить его еще и в dll, в то время как он тебе нафих не нужен ни там ни сям)


Ega23   (2009-05-19 17:06:00) [7]


> Теперь нормально передется и работает без всяких "Build
> with runtime packages" и дополнительных модулей.


Потерпи чуть-чуть, скоро начнётся. Всякое.  :)))


Rimdus   (2009-05-19 16:57:00) [8]

>Сергей М. ©   (19.05.09 14:00) [17]
>Где я говорил про stdcall ?)
>Строго говоря, не нужна она в твоей ситуации, НИГДЕ не нужна.
>И решение, если уж на то пошло, не в установке этой недостающей >директивы, а в удалении имеющейся)

>>>> значит либо Con = nil либо Con.ConnectionString = ''

Вот как раз из-за отсутствия stdcall
Con был равен nil, т.е. видимо параметры передавались не в той последовательности


Сергей М.   (2009-05-19 14:00:00) [9]


> Сергей М. ..  был прав. Решилось все с помощью установки директивы stdcall.


Где я говорил про stdcall ?)
Строго говоря, не нужна она в твоей ситуации, НИГДЕ не нужна.
И решение, если уж на то пошло, не в установке этой недостающей директивы, а в удалении имеющейся)


Rimdus   (2009-05-19 13:55:00) [10]

Собственно Сергей М. ©   (19.05.09 10:28) [5]
был прав. Решилось все с помощью установки директивы stdcall. Как-то я ее забыл написать :)))
Теперь нормально передется и работает без всяких "Build with runtime packages" и дополнительных модулей.
Всем спасибо!


Игорь Шевченко   (2009-05-19 12:27:00) [11]


> длл теперь надо превратить в bpl


а что, если DLL и хост собрать с bpl, разве это не поможет ? Обязательно надо из DLL BPL делать ? Это только с ADO такие странности ?


Медвежонок Пятачок   (2009-05-19 12:14:00) [12]

и не даст.
длл теперь надо превратить в bpl


Slym   (2009-05-19 10:53:00) [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 10:45:00) [14]


> Очень нужно пользоваться именно одним коннектом, т.к. в
> p-таблица по spid лежат нужные данные

Какая связь между этими фразами?
Может пора основы теории баз данных почитать?


Ega23   (2009-05-19 10:36:00) [15]


> Вопрос как?


Начать надо с попытки понять: а что такое dll? Как оно работает? Что такое менеджер памяти? Что такое RTTI и что такое строка? Что такое счётчик ссылок на строку?
И вот уже потом задаться вопросом: а для чего мне нужна dll в качестве архитектурного решения разработки приложения?


Сергей М.   (2009-05-19 10:35:00) [16]


> То что передаю именно "живой" объект с ConnectionString
> <> '' - это точно


Значит Build with runtime packages у тебя = false.
А д.б True и в хост-приложении и в dll-модуле.

И вообще - экий ты упрямый).. Не так давно, помнится, тебе разжевывали про bplvs dll, почему у тебя по сей день формы в dll фигурируют ?


Медвежонок Пятачок   (2009-05-19 10:34:00) [17]

коннекшн стринг - длинная строка, несмотря на то, что это свойство класса.
на нее действуют все заморочки с передачей длинных строк в/из длл.


Rimdus   (2009-05-19 10:34:00) [18]

> Ega23 ©   (19.05.09 10:31) [6]
>Нафига тебе в DLL коннект передавать??? Передавай ConnectionString, а в >DLL уже отдельный коннект создавай.
>Не, конечно, если ты мазохист, то тогда я свой вопрос и совет отзываю.

Очень нужно пользоваться именно одним коннектом, т.к. в p-таблица по spid лежат нужные данные, такова задуманная архитектура.


Rimdus   (2009-05-19 10:32:00) [19]

< Сергей М. ©   (19.05.09 10:28)
< значит либо Con = nil либо Con.ConnectionString = ''

Если это так, то значит как то не так надо передавать? Вопрос как?
То что передаю именно "живой" объект с ConnectionString <> '' - это точно, т.к. перед этим пользуюсь им в exe модуле и ошибок не возникает.


Ega23   (2009-05-19 10:31:00) [20]

Нафига тебе в DLL коннект передавать??? Передавай ConnectionString, а в DLL уже отдельный коннект создавай.
Не, конечно, если ты мазохист, то тогда я свой вопрос и совет отзываю.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо