Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как организовать проверку наличия таблиц ?! подскажите плз.. [D6, IB6.x]


:: Hamster :: ©   (2002-08-29 16:48:00) 

Не могу сообразить чво-то..


MsGuns   (2002-08-29 19:10:00) [1]

>Val © (29.08.02 19:01)
Сгоден ! Кстати, привет Харькову - я там в хаевнике учился ! Класс !!!))))))


Val   (2002-08-29 19:01:00) [2]

есть некоторые возражения, продолжим завтра, если вы не против.


MsGuns   (2002-08-29 18:56:00) [3]

>Val © (29.08.02 18:41)

>2.с чего вы взяли что определение идет именно на клиенте?

а с чего вы взяли что определение идет именно на сервере?

>3.использование TTable для серверной субд не является лучшим >решением - общепризнанный факт не так ли?

У Вас есть уверенность, что автор вопроса НЕ использует этот компонент или его сородичей (TIBTable) ?

>4.у TDataBase НЕТ такого метода(в D5 по крайней мере), он есть >у TIBDataBase, с чего вы взяли что он использует IBX?

у TDataBase ЕСТЬ такогй метод. Не буду утверждать, что он есть в 5 (не работал с ним), но в 4-м ЕСТЬ !

>6. вы думаете что применение запроса это сложно? человеку >работающему с серверной субд не мешало бы знать о системных >таблицах.

Вопрос дискуссионный, мне не хочется его тут обсуждать. Опять же все зависит от автора вопроса. Если он администратор, то он НЕ ДОЛЖЕН задавать таких вопросов, а если начинающий администратор, то обязан прежде чем что-то создавать, хотя бы в общих чертах ознакомиться с тех.документацией.
Поэтому я и сделал вывод, что он (автор) человек из начинающих и работает КАК КЛИЕНТ, даже если и реализует сервер. А для новичков лучше методы простые, которые, как правило, подходят к большинству БД. BDE работает с IB, Вы же не будете это оспаривать ?

Вот и вся моя логика когда я писал не пнравившуюся Вам фразу


Val   (2002-08-29 18:52:00) [4]

>MsGuns ©
поправлюсь со своим пятым пунктом - неверно понял ваше сообщение по поводу создания list. Скажите, что удобнее/оптимальнее по-вашему получить список всех таблиц в лист(почти тот же запрос к серверу), а потом искать в нем нужное или использовать обыкновенный запрос?


Val   (2002-08-29 18:41:00) [5]

1.в вопросе указан именно IB;
2.с чего вы взяли что определение идет именно на клиенте?
3.использование TTable для серверной субд не является лучшим решением - общепризнанный факт не так ли?
4.у TDataBase НЕТ такого метода(в D5 по крайней мере), он есть у TIBDataBase, с чего вы взяли что он использует IBX?
5. откуда он возьмет имена таблиц для List?
6. вы думаете что применение запроса это сложно? человеку работающему с серверной субд не мешало бы знать о системных таблицах.

по-моему моей вилочкой можно кушать? :)


MsGuns   (2002-08-29 18:24:00) [6]

>Val
Ваш метод применим, насколько я понимаю, тоько к IB-подобным БД, а то, что написал я - шире. Да и проще, т.к. позволяет НЕ ЗНАТЬ некоторые спецфункции.
Не претендую на истину, это только МОЕ мнение (возможно, не слишком квалифицированное). Просто я считаю, что ЧЕМ ПРОЩЕ, ТЕМ ЛУЧШЕ
С уважением


Val   (2002-08-29 18:07:00) [7]

>MsGuns © (29.08.02 18:04)
поясните?


MsGuns   (2002-08-29 18:04:00) [8]

>Val
Зачем же есть суп вилкой-то ?


Val   (2002-08-29 17:33:00) [9]

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

и проверять на наличие записей в возвращаемом НД.


:: Hamster ::   (2002-08-29 17:17:00) [10]

Спасиб!


MsGuns   (2002-08-29 17:14:00) [11]

TTable.Exists
или если не хо исп-ть эту компоненту или за раз проверить наличие многих таблиц
TDataBase.GetTableNames(TableList,false)
В TableList (его надо создать заранее) список всех таблов в данной БД


MsGuns   (2002-08-29 17:11:00) [12]

TTable.Close;
TTable.TableName := "MyTable";
If TTable.Exists then
ShowMessage("Ура ! Есть табла !!");


Turalyon   (2002-08-29 16:53:00) [13]

try
MyQuery.SQL.Clear;
MyQuery.SQL.Add("select * from MyTable");
MyQuery.Open;
except on EDBEngineError // что то не то... :)

Кривовато конечно.... первое, что в голову пришло так что извиняйте...


Наверх

Титульная страница Поиск, карта сайта Написать письмо