|
#1
|
|||
|
|||
обнулить таблицы
есть программа...есть функция добавления новой базы и открытие...вроде как не могу правильно закрыть соединение и очистить таблицы...т.к. при закрытии и открытии новой базы продолжаю работать со старой...как правильно очистить???...работаю через 3 ADOTable пробовал:
Код:
ADOTable1.DeleteRecords(arall); Код:
ADOTable1.ClearFields; Код:
ADOTable1.Free; Help!!!!! |
#2
|
|||
|
|||
Лучше будет, если выполнить запрос
Код:
Delete From TableName |
#3
|
|||
|
|||
Угу, ты удаляешь компонент работы с данными, а не сбрасываешь подключение.
Код:
ADOTable1.DeleteRecords(arall); ADOTable1.Active := False; А теперь сюда подробно код и текст ошибок. |
#4
|
|||
|
|||
sdf
Кстати решил проблему вроде делаю ADOTable.Close; тока у меня потом на файловую переменную ругается...из файла пароль к БД как бы подгружаю...до этого не ругалось =(
Код:
try assignfile(hFile,'pas.txt'); reset(hFile); read(hFile,pas); CloseFile(hFile); Except showmessage('Отсутствует пароль'); end; процедуры на открытие файла Код:
ADOConnection1.Connected:=false; ADOConnection2.Connected:=false; ADOTable1.Active:=false; ADOTable2.Active:=false; ADOTable3.Active:=false; pyt:=''; if OpenDialog1.Execute then begin pyt:='Provider=Microsoft.Jet.OLEDB.4.0;' ; pyt:=pyt+'Data Source='+OpenDialog1.FileName+';' ; pyt:=pyt+'Persist Security Info=False;' ; pyt:=pyt+'Jet OLEDB:Database Password='+pas ; ADOConnection1.ConnectionString:=pyt; ADOConnection2.ConnectionString:=pyt; ADOConnection1.Connected:=true; ADOConnection2.Connected:=true; ADOTable1.Active:=true; ADOTable2.Active:=true; ADOTable3.Active:=true; и создание новой базы Код:
ADOConnection1.Connected:=false; ADOConnection2.Connected:=false; ADOTable1.Active:=false; ADOTable2.Active:=false; ADOTable3.Active:=false; if not CopyFile('base\db1.mdb','base\dbx',true)then begin x1: if not CopyFile(Pchar('system\db1'), Pchar('base\db'+inttostr(nm)+'.mdb'), true) then begin nm:=nm+1; ShowMessage('Error'); goto x1; end else end else begin ADOConnection1.Connected:=true; pyt:='base\db'+inttostr(nm)+'.mdb'; end; pyt:='base\db'+inttostr(nm)+'.mdb'; //ADOConnection1.Connected:=true; ADOConnection1.ConnectionString:=pyt; ADOConnection2.ConnectionString:=pyt; ADOConnection2.Connected:=true; ADOTable1.Active:=true; ADOTable2.Active:=true; ADOTable3.Active:=true; в продуре создания программа зависат(вроде тупо зацикливается) на showmessage (после открытия)...хотя когда первый раз запускаю нормально мб я как-то косячно создаю? как бы там лежит пустая база, у нее номерок смотрю, и увеличиваю на скока надо для новой базы.... новая процедура очистки вроде ))) Код:
ADOTable1.ConnectionString:=''; ADOTable1.Active := false; ADOTable1.Close; ADOTable2.ConnectionString:=''; ADOTable2.Active := false; ADOTable2.Close; ADOTable3.ConnectionString:=''; ADOTable3.Active := false; ADOTable3.Close; Последний раз редактировалось ZaaaK, 30.06.2010 в 02:27. |
#5
|
|||
|
|||
а почему вначале коннект:
Код:
pyt:='Provider=Microsoft.Jet.OLEDB.4.0;' ; pyt:=pyt+'Data Source='+OpenDialog1.FileName+';' ; pyt:=pyt+'Persist Security Info=False;' ; pyt:=pyt+'Jet OLEDB:Database Password='+pas ; ADOConnection1.ConnectionString:=pyt; ADOConnection2.ConnectionString:=pyt; а потом: Код:
pyt:='base\db'+inttostr(nm)+'.mdb'; ADOConnection1.ConnectionString:=pyt; может так: Код:
pyt:=pyt+'Data Source=base\db'+inttostr(nm)+'.mdb;' ; pyt:=pyt+'Persist Security Info=False;' ; pyt:=pyt+'Jet OLEDB:Database Password='+pas ; ADOConnection1.ConnectionString:=pyt; ADOConnection2.ConnectionString:=pyt; |
#6
|
|||
|
|||
ыва
да в припципе там коннект при создании нужно ниже поставить,но кусок вы какой-то не тот линканули....а что во втором куске не нравится??? в третьем куске- у меня на новую базу нету пароля и в коннекшене он ене создается...да вообще при создании новой базы по else не уходит... (после открытия и закрытия существующей базы)
|
#7
|
|||
|
|||
ну не то что не нравится... просто в первом случае коннект через АДО второй вариант... хмм... даже не знаю... поэтому и предложил что б формировать коннект так же как и первый.
ПС. а зачем тут else? Код:
if not CopyFile('base\db1.mdb','base\dbx',true)then begin x1: if not CopyFile(Pchar('system\db1'), Pchar('base\db'+inttostr(nm)+'.mdb'), true) then begin nm:=nm+1; ShowMessage('Error'); goto x1; end else end else begin ADOConnection1.Connected:=true; pyt:='base\db'+inttostr(nm)+'.mdb'; end; |
#8
|
|||
|
|||
не знаю зачем лишний видно)
Последний раз редактировалось ZaaaK, 30.06.2010 в 11:08. |