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

Вниз

Проблема со сканированием БД в 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.026 c
1-1092821822
Dot
2004-08-18 13:37
2004.09.05
Как проще программно удалить файл


1-1092988800
HSD
2004-08-20 12:00
2004.09.05
TFileStream добавление файла в конец


14-1092679960
F3nix
2004-08-16 22:12
2004.09.05
Программа подсчета необходимости покупки


6-1088704608
Vladimir_v
2004-07-01 21:56
2004.09.05
Socket Error # 10054


1-1092846426
dimon1979
2004-08-18 20:27
2004.09.05
Гиперссылка