Форум: "Базы";
Текущий архив: 2003.04.10;
Скачать: [xml.tar.bz2];
ВнизКак 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c