![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как программно получить список псевдонимов баз данных??? [D5, MS Access]
MZ © (2002-02-07 17:46:00)Кроме того, как сделать чтобы при подключении базы данных через BDE не выскакивал запрос на имя пользователя и пароль???
Всем спасибо.
MZ (2002-02-08 21:49:00) [1]Спасибо на добром слове. Совет довольно туманный ...сводятся они к одному - работать с небольшими выборками данных... Где критерий небольшой выборки? И как это сделать, если мне надо иметь возможность просмотреть любую запись из базы и лишь изредка отобрать нужные по критерию. Я пробовал писать SQL-запросы, но эта штука тоже не из быстрых. Мне больше понравился вариант использования свойтсва Filter. В моем случае работает почти мгновенно. Если конечно не обращать внимание на большое время инициализации.
А вообще спасибо за информацию. Буду думать. Если получится ;).
Mike_Goblin (2002-02-08 15:36:00) [2]>Кстати, в TTable свойство Database и естественно LoginPromt - >readonly.
Неправда Ваша - в TTable вообще нет LoginPromt, и вообще причем тут TTable - вроде как речь шла о TSession и TDatabase
Ход мыслей
>Взял компонент TTable, в property выбрал псевдоним, таблицу. А >в коде, собственно, делаю только Active в true
И сразу закачиваю 600000 записей по 200-300 байт, которые пользователь никогда не сможет просмотреть одновременно в память (какой объем памяти займет выборка?) от этого у меня случаются тормоза, какой отсюда вывод? Подумай, полистай книжки...
>Может быть есть более правильные методы, но, к сожалению, мне >они не известны
Есть и сводятся они к одному - работать с небольшими выборками данных, которые пользователь может увидеть и осознать.
MZ (2002-02-08 15:04:00) [3]Да у меня все "по-лоховски" простенько. Взял компонент TTable, в property выбрал псевдоним, таблицу. А в коде, собственно, делаю только Active в true. После чего комп задумывается на несколько минут.
Может быть есть более правильные методы, но, к сожалению, мне они не известны. Кстати, в TTable свойство Database и естественно LoginPromt - readonly. Как мне лучше поступить?
Mike_Goblin (2002-02-08 12:27:00) [4]MZ, плиз код инициализации в студию...
Mike_Goblin (2002-02-08 12:26:00) [5]Ну дык
Базы,как Вы догодались, бывают двух типов: локальные и клиент-серверные
локальные
TDatabase.Directory или параметр(параметры живут в TDatabase.Params) с именем PATH
клиент серверные
для Interbase - параметр SERVER_NAME, для других серверов имя этого параметра может быть другим - тогда смотрите в BDE Administrator как он обозван
см. п4 - в хелпе это все расписано....
MZ (2002-02-08 10:31:00) [6]Спасибо за информацию и добрый совет, я имею ввиду п.4 :).
А как можно оптимизировать процесс подлючения к базе данных. А то у меня инициализация занимает 3-5 минут.
База MS Access 2002 около 600000 записей, каждая байт 200-300, сам файл занимает около 50 Мбайт. Такое ощущение, что при коннекте к базе BDE создает то ли копию базы, то ли временый файл примерно такого же размера, что естественно и занимает довольно ощутимое время. Если приложение довольно часто запускать это сильно раздражает.
Как этого избежать?
kserg@ukr.net (2002-02-08 10:31:00) [7]>Mike_Goblin
Уважаемый, подскажи - как выяснить путь к БД,
котр. прописан за конкретным алиасом BDE?
Mike_Goblin (2002-02-08 09:57:00) [8]1. Получение псевдонимов
Компонент TSession метод GetAliasNames(List: TStrings);
2. убрать окошко пароля при соединении- компонент TDatabase св-во LoginPrompt установить в false
3.
а) Список доступных таблиц алиаса
Компонент TSession метод GetTableNames
б) Спискок датасетов ассоциированных с базой (TDatabase)
у TDatabase есть свойство DataSets
4. Читать книги, хелп и исходники VCL&CLX до потери пульса, думать, думать, думать над прочитанным !!!!!!!
Alextov (2002-02-07 19:43:00) [9]Да и как програмно получить список таблиц доступных в базе