![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBExpres Открытие и закрытие соединения [D7, IB4.x, IB5.x, IB6.x]
YurikGl © (2004-04-07 12:36:00)Как закрыть SQLConnection и открыть в нем новую базу
В ADO проходило
ADOConnection.active:=false;
ADOConnection.Properties.Item['Data Source'].Value:=st;
ADOConnection.active:=true;
На SQLConnection.active:=False Программа ругается "Adress voilation...."
Плохиш (2004-04-07 16:56:00) [1]>YurikGl © (07.04.04 16:45) [9]
Хм... Тогда, если в OnBeforeDisconnect или OnAfterDisconnect ничего нет, только build with debug-dll и отладчиком.
YurikGl (2004-04-07 16:45:00) [2]В принципе, мне это не горит. Потом опробирую все на нулевой базе и нулевой проге. Если будут проблемы - напишу. Спасибо.
YurikGl (2004-04-07 16:43:00) [3]var
I: Integer;
begin
with SQLConnection do
begin
for I := 0 to DataSetCount - 1 do
DataSets[I].Close;
end;
end;
проходит без ошибок, а на SQLConnection.Connected := false вылетает
Плохиш (2004-04-07 16:34:00) [4]Тогда делаем перед SQLConnection.Connected := false вот это
var
I: Integer;
begin
with SQLConnection do
begin
for I := 0 to DataSetCount - 1 do
DataSets[I].Close;
end;
end;
и смотрим на каком datasetе вылетает, после этого смотрим, что с этим datasetom делается в программе.
YurikGl (2004-04-07 16:15:00) [5]Если SQLConnection.Connected=true?, то оператор SQLConnection.Connected := false делает я "Adress voilation...."
Плохиш (2004-04-07 16:12:00) [6]Уже теплее :-)
SQLConnection.Connected := false;
SQLConnection.Params.Values['Database'] := 'newdb';
SQLConnection.LoadParamsOnConnect := false;
SQLConnection.Connected := true;
Что говорит?
YurikGl (2004-04-07 16:01:00) [7]re [3]
Еще в Disign установил...
Мне нужно в RunTime подключаться к разным базам. На данный момент, если запускаем программу, она считывает из INI путь и успешно к нему подсоединяется. Если в RunTime изменить путь и попытаться снова выполнить
with SQLConnection.Params do
begin
Clear;
Add('DriverName=Interbase');
Add('DataBase=' + новое значение из INI);
....
SQLConnection.Connected := True;
подсоединенные к SQLConnection SimpleDataSetы.Active:=True
то SQLConnection почему-то использует старое значение параметра 'DataBase'. Передача параметра SQLConnection происходит корректно, проверял через Watch т.е. на момент "SQLConnection.Connected := True;" значение DataModule1.SQLConnection1.Params[1]=" новое значение"
Данные в таблицах соответствуют старому подключению.
Плохиш (2004-04-07 15:44:00) [8]>YurikGl © (07.04.04 15:25) [2]
А ConnectionName, GetDriverFunc, LibraryName, VendorLibустановил?
YurikGl (2004-04-07 15:25:00) [9]Не получилось. SQLConnection использует старый параметр "DataBase".
изменение property LoadParamsOnConnect: Boolean ничего не дало.
Shaman (2004-04-07 14:36:00) [10]Сначала нужно установить параметры соединения. Например так:
with SQLConnection.Params do
begin
Clear;
Add('DriverName=Interbase');
Add('DataBase=' + DatabaseName);
Add('User_Name=SYSDBA');
Add('Password=masterkey');
Add('SQLDialect=3');
Add('ServerCharSet=CYRL');
Add('BlobSize=-1');
Add('LocaleCode=1251');
Add('Interbase TransIsolation=ReadCommitted');
Add('CommitRetain=False');
Add('WaitOnLocks=True');
Add('TrimChar=True');
end;
SQLConnection.LoginPrompt := False;
Потом просто
SQLConnection.Connected := True;