Главная страница
    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.055 c
3-1096551759
intaari
2004-09-30 17:42
2004.10.31
Установка BDE вместе с прогой


4-1096337566
Laymer
2004-09-28 06:12
2004.10.31
Меню пуск.


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


1-1097604812
DSP
2004-10-12 22:13
2004.10.31
Системное время


3-1096628791
DesWind
2004-10-01 15:06
2004.10.31
Обновление лукап поля





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский