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

Вниз

MySQL. Работа с двумя таблицами, блокировка одной из них.   Найти похожие ветки 

 
Aldor ©   (2004-03-05 19:37) [0]

Странный exception вылезает при следующей ситуации:
 Имеются две таблицы (Буфер и Архив). Буфер надо заблокировать, считать все данные, записать их в Архив (он не блокируется), затем Буфер надо полностью очистить.

 
  ExecSQLInner("LOCK TABLES " + <BufferTableName> +
                " LOW_PRIORITY WRITE");
   try
     { Читаем данные из Буфера }
     DataSet := OpenSQLInner("SELECT * FROM " + <BufferTableName>)      
     
     { Пишем их в Архив. StoreQuery - запрос "INSERT" }
     ExecSQLInner(StoreQuery); // здесь ошибка (см. ниже)
     
     { Очищаем Буфер }
     ExecSQLInner("DELETE FROM " + <BufferTableName>);
   finally      }
     ExecSQLInner("UNLOCK TABLES");
   end;
 


ExecSQLInner есть процедура:

 SQLQueryInner.SQL.Text := Query;
 SQLQueryInner.ExecSQL;

 
 При попытке записать данные в архив (строка ExecSQLInner(StoreQuery);) вылезает ошибка
"<ArchiveTableName> was not blocked with LOCK TABLES"

 Если конкретнее, то на строке
 SQLQueryInner.ExecSQL; процедуры ExecSQLInner.

 P.S. Если заблокировать обе таблицы, все нормально.


 
Aldor ©   (2004-03-05 19:43) [1]

Некоторые дополнения:
 процедура OpenSQLInner:
 
 function TfrmServerMain.OpenSQLInner(Query: string): TDataSet;
 begin
   SQLQueryInner.SQL.Text := Query;
   SQLQueryInner.Open;
   Result := SQLQueryInner;
 end;
 

 StoreQuery из строки, где ошибка тоже есть функция:
 function StoreQuery: string;, в которой читается все содержимое DataSet: TDataSet


 
Еще дополнения   (2004-03-05 19:46) [2]

Извиняюсь, допустил ляп:
 после finally символ "}" считать недействительным.



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

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

Наверх




Память: 0.47 MB
Время: 0.021 c
11-1058794263
IronWit
2003-07-21 17:31
2004.04.04
Как программно создать и удалить combobox


1-1079591756
Rem
2004-03-18 09:35
2004.04.04
Автозапуск с Flash-карты


9-1063795051
HoloCaust
2003-09-17 14:37
2004.04.04
AI в играх типа NFK


7-1077469283
rentgen
2004-02-22 20:01
2004.04.04
FM-Tuner


3-1078178904
VID
2004-03-02 01:08
2004.04.04
Как с помощью TDBF переконверт. кодовую страницу ?