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

Вниз

TDataBase в DLL   Найти похожие ветки 

 
snake1977   (2004-01-20 15:09) [0]

Здравствйте! Я передаю в DLL объект TDataBase как параметр в процедуре, и присваиваю свойство DatabaseName свойству TQuery, свойство Connected у переданного DataBase установленно в True, свойство LoginPrompt в False. Но при открытии запроса, выдается окошко для логина :((
почему?? и как правильно передать в DLL DataBase??

вот кусок исходника:
Procedure Makefile(name:String; DB:TDataBase); stdcall;
Var f:TextFile;
q:TQuery;
i:Integer;
Begin
q:=Tquery.Create(nil);
q.DatabaseName:=DB.DataBaseName;
q.SQL.Append("select t.* from blanks t");
q.Open;
AssignFile(f,name);
rewrite(f);
for i:=1 to q.RecordCount do
Begin
for j:=0 to q.FieldCount-1 do
Write(f,q.Fields[j].AsString+#9);
WriteLn(f,"");
End;
Closefile(f);
q.Close;
q.Free;
End;


 
Digitman   (2004-01-20 15:49) [1]

q:=Tquery.Create(nil);
q.Session := DB.Session;
q.DatabaseName:=DB.DataBaseName;


 
snake1977   (2004-01-20 17:03) [2]

Нет такого свойства у TQuery :((
а SessionName дает тот же результат что и без него


 
Digitman   (2004-01-20 17:07) [3]

q:=Tquery.Create(DB.Owner);


 
VAleksey   (2004-01-20 17:19) [4]

Что-то это все не то ...


 
snake1977   (2004-01-20 17:20) [5]

и так тоже не хочет :(


 
snake1977   (2004-01-20 17:21) [6]

>>VAleksey
а как??
я попробовал создать TDataBase и сделать ему Assign , но тогда просто все вылетает с ошибкой :(


 
Digitman   (2004-01-20 17:36) [7]

не помню подробностей, но скажу точно, что поиск объектов классов TSession и TDatabase идет в контексте принадлежности объекта TQuery к той TForm или к тому TDatamodule, которые являются владельцем объекта TDatabase, передаваемого как факт. параметр


 
VAleksey   (2004-01-20 17:42) [8]

Вообще, вроде ты все правильно делал.
Попробуй еще и Session передать.
Может Digitman и прав.

Procedure Makefile(name:String; DB:TDataBase; Sess:TSession); stdcall;
....
Session := Sess;
....
и т.д.


 
snake1977   (2004-01-20 18:15) [9]

а куда потом Session этот использовать ?


 
Digitman   (2004-01-20 18:19) [10]

Identifies the database session component associated with this dataset.

property DBSession: TSession

Description

Use DBSession to determine the session component that controls the database component with which this dataset component is associated. By default, a database component is associated with the default session component, Session, that is automatically created for all database applications.


 
snake1977   (2004-01-20 18:56) [11]

DBSession - read only поле :(
может надо Session передавать в DLL в виде Handle ??


 
snake1977   (2004-01-21 09:05) [12]

потратил пол ночи но разобрался :)
надо сделать было таким образом.
1.Передать из основной программы Handle объекта TDataBase, в вызываемую процедуру.
1.создать экземпляр класса TDataBase в DLL (я сделал глобальную переменную, чтобы можно было использовать вовсех процедурах DLL)
2.присвоить свойству DatabaseName любое имя
3.присвоить хендлу созданого объекта переданный хендл
и все работает на ура :)
тока надо не забыть сделать Free для объекта TDataBase перед выгрузкой DLL



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

Форум: "Основная";
Текущий архив: 2004.02.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.012 c
1-2165
Layner
2004-01-21 15:17
2004.02.02
Подскажите, как запретить редактировать только одну ячейку в


1-2120
AGN
2004-01-14 17:58
2004.02.02
ShellExecute


6-2240
Кен
2003-11-27 07:40
2004.02.02
Как определить можно ли перейти на предыдущую страницу в Браузере


7-2386
Duk_777
2003-11-08 21:31
2004.02.02
Как отключить показ программы при нажатии alt+tab


14-2344
Rouse_
2004-01-07 15:08
2004.02.02
Вот это да ;) Yandex похоже глюкнул ;)





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