как проверить есть ли таблица в БД
От: diarti
Дата: 10.05.04 19:51
Здравствуйте!
Мне надоело каждый раз после завершения работы программы удалять таблицу из БД .Эта прога создает эту самую таблицу следующим образом
CDatabase db;
db.Open(...);
db.ExecuteSQL("create table (field1,field2,...)");
вот и если не удалить таблицу перед новым запуском проги вылетает ошибка
поэтому надо бы написать
if(таблицы нет)
db.ExecuteSQL("create table (field1,field2,...)");
Так что вставить вместо "таблицы нет" в if()?
заранее спаасибо!
23.07.05 03:07: Перенесено модератором из 'MFC' — SchweinDeBurg
Здравствуйте, diarti, Вы писали:
Боюсь что это очень сильно будет зависеть от сервера БД. Думаю что надо копать в сторону таблиц с именами sys...
А проигнорировать ошибку не получается?
Может тогда нагло удалять таблицу
db.ExecuteSQL("drop table tablename");
Хотя тогда ошибка будет вылетать в случае когда таблицы нет
Привет, "diarti"!
> как проверить есть ли таблица в БД
> От: diarti
> Дата: 10.05.04 19:51
>
> Здравствуйте!
> Мне надоело каждый раз после завершения работы программы удалять таблицу из БД .Эта прога создает эту самую таблицу следующим образом
>
> CDatabase db;
> db.Open(...);
> db.ExecuteSQL("create table (field1,field2,...)");
>
> вот и если не удалить таблицу перед новым запуском проги вылетает ошибка
> поэтому надо бы написать
> if(таблицы нет)
> db.ExecuteSQL("create table (field1,field2,...)");
>
> Так что вставить вместо "таблицы нет" в if()?
>
> заранее спаасибо!
В принципе это зависит от сервера БД. Например, для MS SQL Server можно сделать так :
db.ExecuteSQL(" if exists (select * from sysobjects where id = object_id('dbo.table') and sysstat & 0xf = 3) drop table dbo.table\
GO\
create table (field1,field2,...)");
Posted via RSDN NNTP Server 1.8