Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1241720760
Cyrax
2009-05-07 22:26
2009.07.12
Соревнования летающих йогов... 1986 год...


4-1212488971
KygECHuK
2008-06-03 14:29
2009.07.12
Hmodule по HWND


2-1242992535
LSDxLove
2009-05-22 15:42
2009.07.12
программа чтения характеристик и просмотра графических bmp файлов


2-1242886466
webpauk
2009-05-21 10:14
2009.07.12
Проверить строку


15-1242233257
WondeRu at home
2009-05-13 20:47
2009.07.12
url4.ru: мой проект создания коротких ссылок





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