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

Вниз

Too many open tables   Найти похожие ветки 

 
Openfire   (2004-09-29 13:46) [0]

День добрый!
Такая проблема: есть две таблицы, в которые с помощью Query добавляются новые записи и в определенные момент выскакивает "Too many open tables", вполне понятно что нельзя залочить в парадоксе более 255 строк, но как послать commit не вполне понятно...
Пытаюсь использовать CommitUpdates при CachedUpdates мне пишется "Invalid handle to the function"...

Помогите, пожалуйста решить проблему...


 
Anatoly Podgoretsky ©   (2004-09-29 13:48) [1]

Ошибка в 17 строке


 
Openfire   (2004-09-29 14:01) [2]

Не понял...


 
Amoeba ©   (2004-09-29 14:23) [3]


> Openfire   (29.09.04 14:01) [2]

"Ошибка в 17 строке" = "код в студию!"


 
msguns   (2004-09-29 15:06) [4]

Commit для парадокса ?
ПАРАДОКС !


 
Openfire   (2004-09-30 06:34) [5]

while not Eof(f) do
 begin
  Readln(f,s);
...
  if (fio <> "") and (acc <> "") then
   begin
    DataModule1.Find_A.Close;
    DataModule1.Find_A.ParamByName("acc").AsString:=acc;
    DataModule1.Find_A.ExecSQL;
    DataModule1.Find_A.Open;
    DataModule1.DataSource3.DataSet:=DataModule1.Find_A;
    if DataModule1.DataSource3.DataSet.RecordCount > 0 then
     begin
      DataModule1.Add_Money.ParamByName("n_a").AsInteger:=zz;
      DataModule1.Add_Money.ParamByName("n").AsInteger:=DataModule1.DataSource3.DataSet.FieldByName("num").AsInteger;
      DataModule1.Add_Money.ParamByName("m").AsCurrency:=mon;
      DataModule1.Add_Money.ExecSQL;
      DataModule1.Add_Money.Close;
     end
    else
     begin
      DataModule1.Add_Human.ParamByName("fio").AsString:=UCase(fio);
      DataModule1.Add_Human.ParamByName("acc").AsString:=acc;
      DataModule1.Add_Human.ExecSQL;
      DataModule1.Add_Human.Close;
      DataModule1.Find.ParamByName("fio").AsString:=UCase(fio);
      DataModule1.Find.ParamByName("acc").AsString:=acc;
      DataModule1.Find.ExecSQL;
      DataModule1.Find.Open;
      DataModule1.DataSource3.DataSet:=DataModule1.Find;
    {-- --}
      DataModule1.Add_Money.ParamByName("n_a").AsInteger:=0;
      DataModule1.Add_Money.ParamByName("n").AsInteger:=DataModule1.DataSource3.DataSet.FieldByName("num").AsInteger;
      DataModule1.Add_Money.ParamByName("m").AsCurrency:=0;
      DataModule1.Add_Money.ExecSQL;
      DataModule1.Add_Money.Close;
      if mon > 0 then
       begin
        DataModule1.Add_Money.ParamByName("n_a").AsInteger:=zz;
        DataModule1.Add_Money.ParamByName("n").AsInteger:=DataModule1.DataSource3.DataSet.FieldByName("num").AsInteger;
        DataModule1.Add_Money.ParamByName("m").AsCurrency:=mon;
        DataModule1.Add_Money.ExecSQL;
        DataModule1.Add_Money.Close;
       end;
      DataModule1.Find.Close;
      inc(jj1);
     end;
    inc(jj);
   end;
  inc(j);
 end;

в Add_Money и Add_Human insert into...


 
msguns   (2004-09-30 09:18) [6]

>
 DataModule1.Find_A.ExecSQL;
 DataModule1.Find_A.Open;

 DataModule1.Add_Money.ExecSQL;
 DataModule1.Add_Money.Close;
     
А вот это что за сладкие парочки ?


 
DarkMan ©   (2004-09-30 10:32) [7]

DataModule1.Find_A.Open;
DataModule1.Add_Money.Close;

Накой это вот........


 
Openfire   (2004-10-01 05:49) [8]

2msguns
>DataModule1.Find_A.ExecSQL;
>DataModule1.Find_A.Open;
Это Query в которой ищется есть ли уже данные в базе или нет
Можно конечно и DataModule1.Find_A.Active написать

>DataModule1.Add_Money.ExecSQL;
Это Query которая записывает даные в базу...
>DataModule1.Add_Money.Close;
Это соответственно ее закрытие, но оно как бы не нужно я просто искал способы отсоединиться от таблицы, что бы мне не писалось "Too many open tables"


 
ЮЮ ©   (2004-10-01 07:43) [9]

DataModule1.Find_A.ExecSQL;
DataModule1.Find_A.Open;

первое - лишнее, если запрос возвращает НД

DataModule1.Add_Human.ExecSQL;
DataModule1.Add_Human.Close;

второе - лишнее, если запрос вставляет записи


 
msguns   (2004-10-01 09:16) [10]

>ЮЮ ©   (01.10.04 07:43) [9]

Похоже, ExecSQL используется вместо Prepare :)) Хотя при наличии отсутствия сервера и Prepare как мертвому припарки (О ! Какая игра слов !) ;)


 
Openfire   (2004-10-01 09:58) [11]

Спасибо за помощь... Убрав ExecSQL при поиске данных все получилось...



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

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

Наверх




Память: 0.49 MB
Время: 0.026 c
1-1097760706
Volodja
2004-10-14 17:31
2004.10.31
Не добавляется TIcon в TImageList


14-1096930070
NiceManiac
2004-10-05 02:47
2004.10.31
Ламоразмы и обшибки.


14-1097602832
GanibalLector
2004-10-12 21:40
2004.10.31
Книга(и) по ООП???


14-1097250813
Shurik_212
2004-10-08 19:53
2004.10.31
Неохота убивать винду


3-1096955821
Submarine
2004-10-05 09:57
2004.10.31
SQL редактор