Главная страница
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.028 c
3-1100504182
wHammer
2004-11-15 10:36
2004.12.12
Возможно ли восстановление?


14-1100766445
BiN
2004-11-18 11:27
2004.12.12
Опрос. География форумчан.


1-1101507457
Кто---то
2004-11-27 01:17
2004.12.12
Как узнать время срабатывания двойного клика мышкой ?


14-1101227554
Anatoly Podgoretsky
2004-11-23 19:32
2004.12.12
Космический военный лазер


6-1096757015
Klopan
2004-10-03 02:43
2004.12.12
Потоки