|
Вопрос # 2 870/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Помогите решить проблемку с созданием и удалением временной таблицы в БД. Делаю так:
При запуске программы пишу:
s:= 'CREATE TABLE temp' +
'( ' +
' CustNo AUTOINCREMENT NOT NULL, ' +
' Company CHAR(40), ' +
' State CHAR(2), ' +
' PRIMARY KEY (CustNo) ' +
')';
ADOConnection1.Execute(s);
По завершению программы удаляю таблицу так:
s:= 'DROP TABLE temp';
ADOConnection1.Execute(s);
Все это работает хорошо, но..... при некорректном завершении программы временная таблица остается в базе, и соответсвенно при повторном ее запуске выдает ошибку что такая таблица уже существует.
Пробовал делать так:
s:= 'CREATE TABLE IF NOT EXISTS temp' +
'( ' +
' CustNo AUTOINCREMENT NOT NULL, ' +
' Company CHAR(40), ' +
' State CHAR(2), ' +
' PRIMARY KEY (CustNo) ' +
')';
ADOConnection1.Execute(s);
Но вот именно строчка IF NOT EXISTS выдает ошибку синтаксиса. Как это можно средствами языка DDL сделать?
 |
Вопрос задал: Терехин Саша (статус: Посетитель)
Вопрос отправлен: 31 мая 2009, 15:51
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 6; последнее сообщение — 2 июня 2009, 21:16; участников в обсуждении: 3.
|
Терехин Саша (статус: Посетитель), 31 мая 2009, 19:54 [#2]:
Использую обычную базу данных Microsoft Access (Provider=Microsoft.Jet.OLEDB.4.0
|
|
Мережников Андрей (статус: Абитуриент), 31 мая 2009, 20:26 [#3]:
как вариант можно сделать следующим образом:
в конструкцию try execept помещаете запрос к таблице temp - если запрос выполняется без ошибки - значит таблица существует, если при выполнении возникает ошибка, то - нет. Можно в try except поместить само создание таблицы temp, но тогда надо гарантировать правильность запроса на создание таблицы.
|
|
Терехин Саша (статус: Посетитель), 31 мая 2009, 22:40 [#4]:
Хорошо, попробую.
|
|
Терехин Саша (статус: Посетитель), 2 июня 2009, 21:16 [#6]:
Все-таки решил проблему по другому, а именно - получил список всех таблиц активной базы и сделал проверку на наличие временной таблицы, и все.
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|