как проверить есть ли таблица в БД
От: diarti  
Дата: 10.05.04 15:51
Оценка:
Здравствуйте!
Мне надоело каждый раз после завершения работы программы удалять таблицу из БД .Эта прога создает эту самую таблицу следующим образом(MFC ODBC)

CDatabase db;
db.Open(...);
db.ExecuteSQL("create table (field1,field2,...)");

вот и если не удалить таблицу перед новым запуском проги вылетает ошибка
поэтому надо бы написать
if(таблицы нет)
db.ExecuteSQL("create table (field1,field2,...)");

Так что вставить вместо "таблицы нет" в if()?

заранее спаасибо!
Re: как проверить есть ли таблица в БД
От: Brat Латвия  
Дата: 10.05.04 15:57
Оценка:
Здравствуйте, diarti, Вы писали:

а если так?


try
{
db.ExecuteSQL("create table (field1,field2,...)");
}
catch(...)
{
db.ExecuteSQL("DROP table ");

db.ExecuteSQL("create table (field1,field2,...)");

}
Re: как проверить есть ли таблица в БД
От: King Oleg Украина http://kingoleg.livejournal.com
Дата: 10.05.04 16:37
Оценка:
Здравствуйте, diarti, Вы писали:

D>вот и если не удалить таблицу перед новым запуском проги вылетает ошибка

D>поэтому надо бы написать
D>if(таблицы нет)
D>db.ExecuteSQL("create table (field1,field2,...)");

В MySQL можно так:

create table if not exists `table_name` (field1,field2,...)
King Oleg
*Читайте DOC'и, они rules*
Re: как проверить есть ли таблица в БД
От: h256 Россия  
Дата: 10.05.04 17:31
Оценка:
Здравствуйте, diarti, Вы писали:
если база не поддерживает то что написал King Oleg, то вставь на завершение программы код удаляющий таблицу, т.е. drop table
Re: как проверить есть ли таблица в БД
От: molostov  
Дата: 10.05.04 20:06
Оценка:
Здравствуйте, diarti, Вы писали:

D>Здравствуйте!

D>Мне надоело каждый раз после завершения работы программы удалять таблицу из БД .Эта прога создает эту самую таблицу следующим образом(MFC ODBC)

D>CDatabase db;

D>db.Open(...);
D>db.ExecuteSQL("create table (field1,field2,...)");

D>вот и если не удалить таблицу перед новым запуском проги вылетает ошибка

D>поэтому надо бы написать
D>if(таблицы нет)
D>db.ExecuteSQL("create table (field1,field2,...)");

D>Так что вставить вместо "таблицы нет" в if()?


D>заранее спаасибо!


В каждой базе данных есть системная таблица перечня всех существующих таблиц. Например в Access — это MSysObjects. Вот из нее и можно брать необходимую информацию элементарным запросом.
Re[2]: как проверить есть ли таблица в БД
От: King Oleg Украина http://kingoleg.livejournal.com
Дата: 11.05.04 08:17
Оценка:
Здравствуйте, h256, Вы писали:

H>Здравствуйте, diarti, Вы писали:

H>если база не поддерживает то что написал King Oleg, то вставь на завершение программы код удаляющий таблицу, т.е. drop table

Уж лучше и перед "create". А то мало ли, как программа закроется
King Oleg
*Читайте DOC'и, они rules*
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.