Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.10;
Скачать: CL | DM;

Вниз

Как ComboBox в своей программе сделать выборку алиасов,   Найти похожие ветки 

 
Yura88   (2003-03-20 15:53) [0]

зарегистрированных в системе? Например, мне нужен только один, и далее, например делаю, OnClick, во второе ComboBox загружается список доступных таблиц от этого алиаса?


 
Clickmaker ©   (2003-03-20 15:55) [1]

Session.GetAliasNames


 
Yura88   (2003-03-20 16:15) [2]

С этим заданием справился, а вот теперь "прыгая" с таблицы на таблицу, через 5 минут стала вылетать ошибка, что памяти в каком то месте мало,

procedure TForm1.FileListBox1Click(Sender: TObject);
begin
Table1.Active:=false;
Table1.TableName:=FileListBox1.FileName;
Table1.Active:=true;
end;

Процедура "перехода" выше, наверное надо как то выгружаться?


 
stone ©   (2003-03-20 16:17) [3]

2 Yura88 (20.03.03 16:15)

Приведи весь код.

Не понятно зачем тут FileListBox1


 
ufff ©   (2003-03-20 16:19) [4]

ты лучше покажи что делаешь при выборе алиаса


 
Yura88   (2003-03-20 16:34) [5]

Это весь код и есть, щёлкаю на файл-лист-бох, где DBF лежат, и на DBGrid выскакивает новая таблица (по крайней мере когда то выскакивала..)
на форме только файл-лист и DBGrid.


 
Yura88   (2003-03-20 16:55) [6]

Т.е. я алиасы не выбираю, отказался от них, а выбираю файлы из FileListBox1 при клике, считывается отмеченный файл,
записываю в table имя файла
Table1.TableName:=FileListBox1.FileName;
и далее активизирую:
Table1.Active:=true;
Но вот что то при раз так 50 щелканий, не стало памяти гдето хватать, что ещё нужно добавить, чтобы при переходе с одной на другую таблицу, предыдущая затиралась в памяти? Т.е. Table1.Active:=false;
мало.


 
Eugie ©   (2003-03-21 07:15) [7]

К загрузке алиасов BDE в ComboBox (в примере CB_Alias) на локальной машине. В закомментированных строках-дополнительные свойства алиаса. Загузка в примере выполняется при создании формы.

procedure TF_Main.FormCreate(Sender: TObject);
var
TmpCursor: hDbiCur;
Database_: DBDesc;
rslt: DbiResult;
begin
CB_Alias.Items.Clear;
//Добавление в список имён алиасов
Check(dbiInit(nil));
Check(DbiOpenDatabaseList(TmpCursor));
Repeat
rslt:=DbiGetNextRecord(TmpCursor, dbiNOLOCK, @Database_, nil);
if (rslt <> DBIERR_EOF) then
begin
//DatabaseList.Add(StrPas(Database_.szName)
// + " - " + StrPas(Database_.szPhyName)
// + " - " + StrPas(Database_.szDbType))
CB_Alias.Items.Add(StrPas(Database_.szName));
end;
until (rslt <> DBIERR_NONE);
Check(DbiCloseCursor(TmpCursor));
//Добавили
CB_Alias.ItemIndex:=0;
end;


 
Yura88   (2003-03-21 08:17) [8]

Eugie ©, спасибо за код, я его сохранил, очень думаю пригодится, только вот вопрос, обязательно ли открывать БД через алиас, если можно открыть через путь на диске и всё. Через алиасы доступ, имеет ли какие преимущества? (Скорость...)


 
eugie ©   (2003-03-21 08:40) [9]

В случае, если работа с таблицами БД осуществляется через BDE вопрос только в удобстве интерфейса программной оболочки. Лично я тоже придерживаюсь того, чтобы поьзователь просто указал путь к файлам БД. А на счет списка алиасов в ComboBox - просто увидел вопрос, на который у меня есть ответ.


 
Lord Warlock ©   (2003-03-21 09:22) [10]

Table1.TableName:=FileListBox1.FileName возвращает имя файла с путем. В случае таблиц их надо разносить, те само имя файла в TableName, а путь в DatabaseName



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

Текущий архив: 2003.04.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
4-30653
Inquirer
2003-02-10 14:17
2003.04.10
Edit Control Messages


1-30351
Ахурамазда
2003-03-31 20:43
2003.04.10
COM & ActiveX


14-30584
VH
2003-03-25 10:54
2003.04.10
APACHE+ASP


3-30305
Sergant
2003-03-23 15:02
2003.04.10
Получение списка объектов MS SQL 6.5


14-30517
Igo
2003-03-20 08:01
2003.04.10
Компоненты из набора Indy - TIdCoderMD5