Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];




Вниз

Проблемма 


Turalyon   (2002-03-14 13:23) [0]

Привет всем!
Есть проблемма.
Вот процедура....


procedure TForm1.WriteToBase (CompName : String; LogArr : array of LogStat);
var i, CTime : cardinal;
LogDB : TIBDatabase;
LogTransaction : TIBTransaction;
SelIBQry, CompIBQry, SoftIBQry: TIBQuery;
CompId, SoftId : Cardinal;
begin
Memo1.Lines.Add("Вошли " + IntToStr(length(LogArr)));


try

LogDB := TIBDatabase.Create(self);
LogDB.DatabaseName := "C:\Work\BEHOLDER.GDB";
LogDB.Params.Add("user_name=sysdba");
LogDB.Params.Add("password=masterkey");
LogDB.Params.Add("lc_ctype=WIN1251");
LogDB.LoginPrompt := False;

LogTransaction := TIBTransaction.Create(self);
LogTransaction.DefaultDatabase := LogDB;

LogDB.DefaultTransaction := LogTransaction;

SelIBQry := TIBQuery.Create(self);
SelIBQry.Database := LogDB;
SelIBQry.Transaction := LogTransaction;

CompIBQry := TIBQuery.Create(self);
CompIBQry.Database := LogDB;
CompIBQry.Transaction := LogTransaction;
CompIBQry.SQL.Add("insert into COMPUTER");
CompIBQry.SQL.Add("(C_NAME)");
CompIBQry.SQL.Add("values");
CompIBQry.SQL.Add("(:C_NAME)");

SoftIBQry := TIBQuery.Create(self);
SoftIBQry.Database := LogDB;
SoftIBQry.Transaction := LogTransaction;
SoftIBQry.SQL.Add("insert into SOFTWARE");
SoftIBQry.SQL.Add("(S_NAME, S_DESCRIPTION)");
SoftIBQry.SQL.Add("values");
SoftIBQry.SQL.Add("(:S_NAME, :S_DESCRIPTION)");

LogDB.Connected := True;
Memo1.Lines.Add("Создали компоненты " + IntToStr(length(LogArr)));


Она не заканчивается на этом месте.. но дальше она и не идет...
Ситуация такая - прога работает с Socket eй по сетке приодит информация и она ее обрабатывает. Вот в этой процедуре происходит затык, если информация приходит сразу от нескольуих машин. Создавать компоненты динамически пришлось потому что если опять же придет информация от нескольких машин произойдет затык - статические компоненты уже используются....
Если приходит информация только от одного все работает от двух одновременно просто подвискает.
Второго добавления в Memo не происходит...
Как с этим бороться? Я подумал можетразбить это по птокам, но с ними не работал, по этому не знаю поможет ли....



Turalyon   (2002-03-14 13:33) [1]

В догонку.... затык происходит на сточке
LogDB.Connected := True;
Только что посмотрел, до этого места все выводит...



Johnmen   (2002-03-14 13:41) [2]

А хоть один раз отрабатывает ?



Turalyon   (2002-03-14 13:49) [3]

Если приходит от одной машины то все работает, если же одновременно то на стоке
LogDB.Connected := True
Подвисает. И обе процедуры (в смысле одна процедура) дальше не идут.




Форум: "Базы";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.08;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.037 c
14-22802          vajo                  2002-02-26 15:15  2002.04.08  
Всем привет! Вопрос по W2000 server


1-22687           shane54               2002-03-26 13:45  2002.04.08  
При обработки нажатия на Enter...


1-22655           DikobraZ              2002-03-26 12:00  2002.04.08  
User32.dll:SetLayeredWindowAttributes.


7-22847           Херувим               2001-12-29 13:29  2002.04.08  
Как определить номер железа


3-22546           Nina                  2002-03-14 14:17  2002.04.08  
DateTimeToString