Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.033 c
9-1092288740
OSG
2004-08-12 09:32
2004.12.12
OMEGA


4-1098948731
Lexx3D
2004-10-28 11:32
2004.12.12
CD, DVD приводы...


1-1101396378
Руслана
2004-11-25 18:26
2004.12.12
Подскажите по массивам


3-1100165048
Mih
2004-11-11 12:24
2004.12.12
Удаление


4-1098889217
boban
2004-10-27 19:00
2004.12.12
Как заблокировать Print Screen ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский