Форум: "Базы";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Внизпроверка и удаление таблицы Найти похожие ветки
← →
denis24 (2004-11-09 16:47) [0]Есть adoquery ,соединение у него connection на определ базу *.mdb.
Пишу
sql.add("if exists temp DROP TABLE temp")
В ответ "Непраильная инструкция,,,,"
Как проверить существование таблицы и потом удалить?
← →
Vlad © (2004-11-09 16:55) [1]
> denis24 (09.11.04 16:47)
>Как проверить существование таблицы и потом удалить?
ADOConnection.GetTableNames;
> if exists temp
а что, разве SQL в аксессе такое позволяет ???
← →
Anatoly Podgoretsky © (2004-11-09 17:07) [2]sql.add("DROP TABLE temp")
← →
denis24 (2004-11-09 17:17) [3]Да..нету это я серверным запросом перепутал
ADOConnection.GetTableNames;
пишет "Не удается найти объект в семействе сoответствующий требуемому имени или порядковому номеру"
← →
Vlad © (2004-11-09 17:33) [4]
> denis24 (09.11.04 17:17) [3]
Покажи код как делаешь?
А вобще, честно говоря проверка на существование таблицы по-моему лишняя. Достаточно корректно обрабатывать исключение.
← →
denis24 (2004-11-09 17:42) [5]да из примера все
SL := TStringList.Create;
DataModule2.ADOConnection1.Connected:=true;
DataModule2.ADOConnection1.GetTableNames (SL, False);
for index := 0 to (SL.Count - 1) do begin
if sl[index]="temp" then
begin
with DataModule2.ADOQuery2 do
begin
close;
sql.Clear;
sql.add("DROP TABLE temp");
ExecSQL;
end;
end;
end;
sl.Free;
← →
Vlad © (2004-11-09 17:57) [6]
> denis24 (09.11.04 17:42) [5]
хм.. странно. Ошибка надо понимать вылазит в этой строчке?
> DataModule2.ADOConnection1.GetTableNames (SL, False);
В качестве провайдера Jet используешь или что?
← →
denis24 (2004-11-09 18:04) [7]да
aDOConnection1.ConnectionString:="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+ExtractFilePath(Application.ExeName)+"EVA.MDB";
← →
SergP © (2004-11-10 08:49) [8]Попробовал вот так:
procedure TForm1.Button1Click(Sender: TObject);
var
sl:TStrings;
begin
SL := TStringList.Create;
ADOConnection1.Connected:=true;
ADOConnection1.GetTableNames (SL, False);
if sl.IndexOf("temp")>=0 then
ADOConnection1.Execute("drop table temp");
sl.Free;
end;
вроде работает. если нужная таблица есть то оно ее дропает...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.042 c