![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как организовать проверку наличия таблиц ?! подскажите плз.. [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 // что то не то... :)
Кривовато конечно.... первое, что в голову пришло так что извиняйте...