Форум: "Базы";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
ВнизDBExpres Открытие и закрытие соединения Найти похожие ветки
← →
YurikGl © (2004-04-07 12:36) [0]Как закрыть SQLConnection и открыть в нем новую базу
В ADO проходило
ADOConnection.active:=false;
ADOConnection.Properties.Item["Data Source"].Value:=st;
ADOConnection.active:=true;
На SQLConnection.active:=False Программа ругается "Adress voilation...."
← →
Shaman © (2004-04-07 14:36) [1]Сначала нужно установить параметры соединения. Например так:
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;
← →
YurikGl © (2004-04-07 15:25) [2]Не получилось. SQLConnection использует старый параметр "DataBase".
изменение property LoadParamsOnConnect: Boolean ничего не дало.
← →
Плохиш (2004-04-07 15:44) [3]>YurikGl © (07.04.04 15:25) [2]
А ConnectionName, GetDriverFunc, LibraryName, VendorLib установил?
← →
YurikGl © (2004-04-07 16:01) [4]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 16:12) [5]Уже теплее :-)
SQLConnection.Connected := false;
SQLConnection.Params.Values["Database"] := "newdb";
SQLConnection.LoadParamsOnConnect := false;
SQLConnection.Connected := true;
Что говорит?
← →
YurikGl © (2004-04-07 16:15) [6]Если SQLConnection.Connected=true?, то оператор SQLConnection.Connected := false делает я "Adress voilation...."
← →
Плохиш (2004-04-07 16:34) [7]Тогда делаем перед 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:43) [8]var
I: Integer;
begin
with SQLConnection do
begin
for I := 0 to DataSetCount - 1 do
DataSets[I].Close;
end;
end;
проходит без ошибок, а на SQLConnection.Connected := false вылетает
← →
YurikGl © (2004-04-07 16:45) [9]В принципе, мне это не горит. Потом опробирую все на нулевой базе и нулевой проге. Если будут проблемы - напишу. Спасибо.
← →
Плохиш (2004-04-07 16:56) [10]>YurikGl © (07.04.04 16:45) [9]
Хм... Тогда, если в OnBeforeDisconnect или OnAfterDisconnect ничего нет, только build with debug-dll и отладчиком.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.045 c