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

Вниз

проверка и удаление таблицы   Найти похожие ветки 

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

Наверх




Память: 0.48 MB
Время: 0.023 c
3-1100244981
lightix
2004-11-12 10:36
2004.12.12
Сжать DBF


1-1101885164
opoloXAI
2004-12-01 10:12
2004.12.12
Как распечатать TStrings в три столбика?


3-1100246020
Jann
2004-11-12 10:53
2004.12.12
даление строчки


14-1101363932
NewDelpher
2004-11-25 09:25
2004.12.12
Вопрос ученым: Нужен ли диссертант научному руководителю?


4-1099042237
WaS
2004-10-29 13:30
2004.12.12
Сымитировать нажатие клавиши F2 не посредством key_event