Форум: "Базы";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
ВнизПроблема со сканированием БД в BDE Найти похожие ветки
← →
BRemB (2004-08-11 16:35) [0]Добрый день, Мастера! У меня такая проблема, я пытаюсь полностью просканировать все алиасы в bde и составить дерево их у себя в приложении. Но мне нееобходимо узнать и таблицы по алиасам, но у меня при сканировании все виснет. Привожу код функции. Помогите плз, в чем баг?
procedure TfrmAddTableInDB.FormShow(Sender: TObject);
var LstAlias : TStringList;
LstTables : TStringList;
i,j : integer;
RootTree : TTreeNode;
ChildTree : TTreeNode;
begin
TreeView1.Items.Clear;
LstAlias:=TStringList.Create;
LstTables:=TStringList.Create;
try
Session .GetAliasNames(LstAlias);
except
ShowMessage("Ошибка инициализации BDE!");
end;
for i:=0 to LstAlias.Count-1 do
begin
RootTree:=TreeView1.Items.Add(nil,LstAlias.Strings[i]);
LstTables.Clear;
try
Session.GetTableNames(LstAlias.Strings[i],"*.db",false,false,LstTables);
for j:=0 to LstTables.Count-1 do
ChildTree:=TreeView1.Items.AddChild(RootTree,LstTables.Strings[j]+".db");
except
on EDBEngineError do continue;
end;
end;
end;
← →
Соловьев © (2004-08-11 16:40) [1]А пройти дебагером слабо?
← →
Rule © (2004-08-11 16:41) [2]on EDBEngineError do continue;
а мне эта строчка кажется подозрительной, ну не логично както, если хотите продолжить даже в случае ошибки то просто ничего не пишите
← →
BRemB (2004-08-11 16:43) [3]пробовал, но все равно, в bde примерно 60 алиасов, и на 42 виснет, причем пробовал вставлять новые и удалять.
← →
BRemB (2004-08-11 16:46) [4]
> А пройти дебагером слабо?
Я говорю же что на 42 итерации виснет никак не реагирует, отлаживал пошагово
← →
Rule © (2004-08-11 17:11) [5]Может с самим BDE чегото
← →
Соловьев © (2004-08-11 17:12) [6]а если 10 алиасов?
← →
BRemB (2004-08-11 17:33) [7]
> Может с самим BDE чегото
C BDE все нормально, т.к. другая программа может все это сделать и с довольно приличной скоростью
> а если 10 алиасов?
тоже самое, я заметил, что в BDE усть такой алиас MQIS - SQL Server"a, до него все идет нормально, а на нем все останавливается и я не могу его удалить, хотя SQL Server остановлен. Другое приложение полностью анализирует структуру даже с этим алиасом.
← →
Rule © (2004-08-11 17:34) [8]BRemB (11.08.04 17:33) [7]
Какое другое приложение
← →
BRemB (2004-08-11 17:40) [9]есть ГИС Zulu 5.2 там есть такая штука, я хочу сделать также
← →
Anatoly Podgoretsky © (2004-08-11 17:58) [10]BRemB (11.08.04 17:33) [7]
Так другое приложение написано правильно. И чего ты лезешь на SQL сервер?
← →
BRemB (2004-08-12 10:41) [11]
> И чего ты лезешь на SQL сервер?
Я просто перебираю все алиасы, и когда доходит до MQIS, то останавливается. Вот именно, что другое приложение написано правильно, я хочу выяснить в чем у меня ошибка, поэтому я и кинул вопрос на форум
← →
Соловьев © (2004-08-12 10:43) [12]
> поэтому я и кинул вопрос на форум
по твоему коду видно, что тебя интересует таблицы парадокс, про МС СКЛ мы должны были догадаться?
← →
Anatoly Podgoretsky © (2004-08-12 10:58) [13]Они просто не лезут грязными руками на SQL сервер
← →
BRemB (2004-08-12 11:03) [14]по моему коду видно, что при возникновении исключительных ситуаций они будут обрабатываться, а MS SQL - это исключительная ситуация.
> про МС СКЛ мы должны были догадаться
Вы могли догадаться, что в BDE могут быть и MSSQL
← →
app © (2004-08-12 11:17) [15]BRemB (12.08.04 11:03) [14]
Рассмешил, MS SQL сервер это не исключительная ситуация, а нормальный промышленный сервер. Не кати бочку на Микрософт, есть более точные мишени.
← →
Соловьев © (2004-08-12 11:18) [16]я так понимаю у тебя нет там исключительной ситуации прога ждет. А ждет она ввода пароля и логина.
← →
BRemB (2004-08-12 11:29) [17]
> А ждет она ввода пароля и логина.
Да, но почему же не выводит окно ввода пароля и логина. Да и еще у меня есть алиасы к интербейсу, они у меня проходят нормально. В таком случае они тоже должны были выдавать окно ввода пароля и логина.
← →
Соловьев © (2004-08-12 11:30) [18]
> Да и еще у меня есть алиасы к интербейсу, они у меня проходят
> нормально
хм...тогда не ясно чего она ждет...
← →
BRemB (2004-08-12 14:16) [19]вот именно, интересный наблюдается факт, код написанный на другой машине и там скомпилированный на D7 работает, и там и у меня. Я пишу на своей машине точно такой же код и компилирую у себя, но у меня не работает. Использую компонент TDatabase. Привожу код.
procedure TForm1.Button1Click(Sender: TObject);
begin
Session1.Active:=true;
Session1.GetAliasNames(combobox3.Items);
end;
procedure TForm1.ComboBox3Click(Sender: TObject);
begin
Database1.Connected:=false;
Database1.AliasName:=combobox3.Items.Strings[combobox3.ItemIndex];
Database1.GetTableNames(listbox1.Items);
Database1.Connected:=true;
end;
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.037 c