Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.02.20;
Скачать: [xml.tar.bz2];

Вниз

Как узнать, существует ли таблица ?   Найти похожие ветки 

 
sveloga   (2003-02-03 08:49) [0]

Требуется узнать существует ли данная таблица в базе InterBase ? Как это сделать ?
Так что-то криво выглядит:
try
.....
except
.....
on E: EIBInterBaseError do


 
Sergey Masloff   (2003-02-03 09:07) [1]

select count(*) from rdb$relations where where rdb$relation_name = :YOUR_TABLE_NAME


 
mr_ivan   (2003-02-03 09:36) [2]

Да и если покопаться в системных таблицах rdb$... можно узнать есть ли индексы тригера и т.п посмотри очень интересно!!


 
sveloga   (2003-02-04 04:26) [3]

по причине моей чайниковости я не знаю как работать с систамными таблицами. Можно несколько подробнее ?
Через IBQuery SQL =: "select count(*) from rdb$relations where where rdb$relation_name = :YOUR_TABLE_NAME"
Так ?
А кто мне вернет результат ?

+ еще вопрос:

Создаю таблицу в базе, но приложение ее не видет до того пока не перезапустишь приложение.


 
DarkGreen   (2003-02-04 06:00) [4]

С системными таблицами можно работать так же как и с пользовательскими, вот только данные туду ручками добавлять не стоит. Прочитать про системные таблицы, их использование и назначение можно на
http://ibase.ru
http://interbase-world.ru

Приложение не видит созданную таблицу из-за того, что ты транзакцию не закоммитил
IBQuery1.Transaction.Commit;


 
Sirus   (2003-02-04 07:32) [5]

Исползуй обычные компоненты типа TQuery и тода все будет ОК...
При создании таблицы видны без перезапуска...


 
Sergey Masloff   (2003-02-04 09:02) [6]

Sirus ©
>Исползуй обычные компоненты типа TQuery и тода все будет ОК...
>При создании таблицы видны без перезапуска...
Ага, щаз ;-) То что BDE делает что-то за тебя не значит что этого не происходит. А, учитывая что ты не знаешь что она еще делает там "за сценой" и потенциальные конфликты версий BDE, совет использования TQuery (и, соответственно, BDE) для работы с IB выглядит сомнительным

sveloga © (04.02.03 04:26)
>Через IBQuery SQL =: "select count(*) tblcount from >rdb$relations where >where rdb$relation_name = :YOUR_TABLE_NAME"
>Так ?
так
>А кто мне вернет результат ?
Fields[0].AsInteger

или измени запрос подставив псевдоним для выбираемого значения:
select count(*) tblcount from ...
Соответственно будет FieldByName("tblcount").AsInteger

Не забудь что поиск в RDB$RELATIONS будет с учетом регистра символов, то есть "MyTable"<>"MYTABLE"


 
sveloga   (2003-02-04 11:45) [7]

Чем дальше в лес....

1)Почему не работает такая выборка (взято из книги)? просто интересно стало.

select Rdb$relation_name from rdb$relations
where RDB$relation_name NOT Like "RDB$%"

говорит что Column unknown RDB$%, имхо с синтаксисом что-то не то... как должно быть ?

2)так и не работает

select count(*) from rdb$relations
where rdb$relation_name =:MAIN

выдает COUNT - 0

где MAIN - это имя таблицы, которая точно существует, в этом же регистре.


 
Val   (2003-02-04 12:20) [8]

select rdb$relation_name
from rdb$relations
where (rdb$system_flag = 0) and
(rdb$view_source is null) and
(rdb$relation_name = "MY_TABLE_NAME")


 
Sergey Masloff   (2003-02-04 15:42) [9]

2)так и не работает

select count(*) from rdb$relations
where rdb$relation_name =:MAIN
MAIN это параметр ты ему значение присвоил?
Если не параметр то в кавычках надо а двоеточие убрать. Приведенный мною запрос работает 100% можешь не сомневаться



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.02.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
14-63809
IRCServer
2003-02-04 08:43
2003.02.20
дайте IRC Server


14-63760
radion
2003-02-04 16:11
2003.02.20
ПРОГРАММА ПО PROXY ( сриншот )


14-63825
LazorenkoX
2003-02-04 15:14
2003.02.20
Quick Reports


14-63750
Tsr
2003-01-26 18:03
2003.02.20
Безопасность в The Bat


7-63859
Sheriff
2002-12-20 08:42
2003.02.20
Com port + TBits





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский