Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.032 c
4-1074787639
nnm1
2004-01-22 19:07
2004.04.04
getwindow?


9-1064305231
Alex
2003-09-23 12:20
2004.04.04
GLScene


1-1079099315
}|{yk
2004-03-12 16:48
2004.04.04
Странно. Почему Delphi это не хавает?


14-1078899146
stone
2004-03-10 09:12
2004.04.04
Пришел спам


1-1079345571
Bes
2004-03-15 13:12
2004.04.04
насчет Plugin ом....




   Наверх