Главная страница
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.047 c
1-1079016167
YurikGl
2004-03-11 17:42
2004.04.04
Проблемы с размером шрифтов.


6-1075281713
OlehM
2004-01-28 12:21
2004.04.04
Как узнать время на каком нибудь другом компютере в сетке?


6-1075105145
Arsen
2004-01-26 11:19
2004.04.04
Proxy в WebBrowser


1-1079608292
argom
2004-03-18 14:11
2004.04.04
Как в моей проге отследить команду "Свернуть все окна"


9-1063820414
-J=A=X-
2003-09-17 21:40
2004.04.04
Game -на Delphi GLScene 3D/ HELP!!!