Главная страница
    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.042 c
1-1101835736
kaktus
2004-11-30 20:28
2004.12.12
Динамическая обраьотка событий.


1-1101878751
Vladik
2004-12-01 08:25
2004.12.12
MDI формы, анимация


4-1098688328
VZup
2004-10-25 11:12
2004.12.12
SetWindowText - не отправляется в Edit


4-1098339093
Dema-X
2004-10-21 10:11
2004.12.12
CNTRL+A или как проэмулировать нажатие горячих клавиш?


14-1101044542
f00rd
2004-11-21 16:42
2004.12.12
SpeedButton + темы WinXP





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский