Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.02;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.027 c
1-1082019865
sergundi
2004-04-15 13:04
2004.05.02
Проблема с сортировкой ListView


9-1068995883
m2003
2003-11-16 18:18
2004.05.02
Flip (0, DDFLIP_WAIT) возвращает DDERR_SURFACEBUSY


9-1068714034
Хранитель_7К
2003-11-13 12:00
2004.05.02
Странно все это...


4-1078388144
Serega_____
2004-03-04 11:15
2004.05.02
Введение новой оконной процедуры


1-1081889917
lame
2004-04-14 00:58
2004.05.02
битовые матрицы