![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как проверить что в базе есть таблица?
Kolan © (2007-12-19 17:16:00)Здравствуйте,
Работаю с MS SQL Server 2000.
Допустим мне надо выполнить запрос:
SQL.Add('SELECT * FROM CONF_USER');
Как проверить есть ли таблица CONF_USER?
И вообще, как бы организовать проверку что схема базы соответствует нужной программе?
ЗЫ
Можно конечно достать из системных таблиц, но ведь это не всегда возможно, или вседа?
Anatoly Podgoretsky (2007-12-19 17:49:00) [21]> Kolan (19.12.2007 17:16:00) [0]
TAdoConnection.GetTableNames
INFORMATION_SCHEMA универсально и системно независимо.
Kolan (2007-12-19 17:37:00) [22]Придумал. В БД надо сделать служебную таблицу где писать тип БД. Приложение должно знать с каким типом БД оно умеет работать и соотв сверяться с БД.
Kolan (2007-12-19 17:27:00) [23]> исключение ?
Да, но оно OleException как понять что именно нет таблицы? не парсить же строку
Jeer (2007-12-19 17:26:00) [24]
> начинаются эксепшены invalid object
Так пробегись по таблицам и обрабатывай исключения
Jeer (2007-12-19 17:25:00) [25]
> Как проверить есть ли таблица CONF_USER?
исключение ?
Kolan (2007-12-19 17:25:00) [26]> Если проверку завернуть в хранимку, то всегда возможно.
А если её нет :).
Для чего? В программе есть возможность подключится к другой БД. Используется стандартный диалог. И подключение проходит нормально, а потом если перепутали базу, то так как проверки нет, начинаются эксепшены invalid object
ANB (2007-12-19 17:21:00) [27]
> но ведь это не всегда возможно, или вседа?
Если проверку завернуть в хранимку, то всегда возможно.