MFC ODBC
От: diarti  
Дата: 10.05.04 15:56
Оценка:
как проверить есть ли таблица в БД
От: 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
Re: MFC ODBC
От: Willi  
Дата: 10.05.04 16:37
Оценка:
Здравствуйте, diarti, Вы писали:

Боюсь что это очень сильно будет зависеть от сервера БД. Думаю что надо копать в сторону таблиц с именами sys...

А проигнорировать ошибку не получается?

Может тогда нагло удалять таблицу
db.ExecuteSQL("drop table tablename");

Хотя тогда ошибка будет вылетать в случае когда таблицы нет
\/\/i||i
Re: MFC ODBC
От: aeroteam  
Дата: 11.05.04 08:39
Оценка:
Привет, "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
Re: MFC ODBC
От: romashka Удмуртия  
Дата: 25.07.05 07:22
Оценка:
D>Мне надоело каждый раз после завершения работы программы удалять таблицу из БД .Эта прога создает эту самую таблицу следующим образом

Может использовать временные таблицы, они удалятся после завершения сеанса (MSSQL)
db.ExecuteSQL("create #table (field1,field2,...)");
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.