Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

проверка и удаление таблицы [D6, access]


denis24 ©   (2004-11-09 16:47:00) 

Есть adoquery ,соединение у него connection  на определ базу *.mdb.
Пишу
sql.add('if exists temp DROP TABLE temp')
В ответ "Непраильная инструкция,,,,"
Как проверить существование таблицы и потом удалить?


SergP   (2004-11-10 08:49:00) [1]

Попробовал вот так:


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;


вроде работает. если нужная таблица есть то оно ее дропает...


denis24   (2004-11-09 18:04:00) [2]

да
aDOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilePath(Application.ExeName)+'EVA.MDB';


Vlad   (2004-11-09 17:57:00) [3]


> denis24   (09.11.04 17:42) [5]

хм.. странно. Ошибка надо понимать вылазит в этой строчке?

> DataModule2.ADOConnection1.GetTableNames (SL, False);


В качестве провайдера Jet используешь или что?


denis24   (2004-11-09 17:42:00) [4]

да из примера все
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:33:00) [5]


> denis24   (09.11.04 17:17) [3]

Покажи код как делаешь?
А вобще, честно говоря проверка на существование таблицы по-моему лишняя. Достаточно корректно обрабатывать исключение.


denis24   (2004-11-09 17:17:00) [6]

Да..нету это я серверным запросом перепутал
ADOConnection.GetTableNames;

пишет "Не удается найти объект в семействе сoответствующий требуемому имени или порядковому номеру"


Anatoly Podgoretsky   (2004-11-09 17:07:00) [7]

sql.add('DROP TABLE temp')


Vlad   (2004-11-09 16:55:00) [8]


> denis24   (09.11.04 16:47)  
>Как проверить существование таблицы и потом удалить?


ADOConnection.GetTableNames;


> if exists temp

а что, разве SQL в аксессе такое позволяет ???


Наверх

Титульная страница Поиск, карта сайта Написать письмо