Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.10.31;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.049 c
1-1097659476
DSP
2004-10-13 13:24
2004.10.31
Сестемное время


14-1097418483
Students
2004-10-10 18:28
2004.10.31
Экспертная системка


1-1097847015
Анонимщик
2004-10-15 17:30
2004.10.31
Аппроксимация контура


3-1096626257
Chuk45
2004-10-01 14:24
2004.10.31
Locate и Query


3-1096884772
_none_
2004-10-04 14:12
2004.10.31
stream read error





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский