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

Вниз

Too many record locks on table.   Найти похожие ветки 

 
RDen   (2005-02-01 09:22) [0]

Переношу данные из стринггрида в таблицу, но при использовании транзакции, появляется сабж. Подскажите пож. почему?

з.ы. происходит, если кол-во строк в гриде >= 100;

 Form1.Table1.Database.TransIsolation := tiDirtyRead;
 Form1.Table1.Database.StartTransaction;

Try

 For j:=0 to StringGrid1.RowCount - 2 do
   begin
     For i:=0 to StringGrid1.ColCount - 1 do
       begin
         Form1.Table1.Edit;
         Form1.Table1.FieldByName(Form1.Table1.Fields[i].FieldName).AsString:=
         StringGrid1.Cells[i, j + 1];
       end;
     Form1.Table1.Append;
   end;
 Form1.Table1.First;
 Form1.Table1.Edit;
 Form1.Table1.Post;

 Form1.Table1.Database.Commit;//принимаем изменения

 Except
   Application.MessageBox("Программе не удаётся сохранить данные.", "Ошибка",MB_ICONERROR);
   Form1.Table1.Database.Rollback; //откат изменений
 end;


 
Digitman ©   (2005-02-01 09:30) [1]


> RDen   (01.02.05 09:22)


никуда не денешься... известное ограничение для dbf-движков .. разбивай единую транзакцию на несколько, в каждой из которых добавляй/удаляй/модифицируй не более 99 записей


 
ЮЮ ©   (2005-02-01 09:48) [2]

Учитывая
http://delphi84.valuehost.ru/cgi-bin/forum.pl?id=1107233168&n=1
создается впесатление, что ты считываешь таблицу в стрингрид, а при сохранении сначала чистишь её, а затем вставляешь записи из стрингрида. Причем, учитывая большой временной промежуток, когда таблица может просто "накрыться" во время этих манипуляций, пытаешься сделать это в транзакции.
Совет 1: Перейди к DBGrid и мене садисстским методам работы с таблмцами
Совет 2. Забудь о транзакциях на этом движке. На крайний случай Кэшированный запрос.


 
Johnmen ©   (2005-02-01 09:48) [3]

>RDen   (01.02.05 09:22)  

Твой код очень прикольный :)
Есть ощущение, что написано без головы... Особенно это
Form1.Table1.Edit;
Form1.Table1.Post;


 
Digitman ©   (2005-02-01 09:56) [4]

with Form1 do
For j:=1 to StringGrid1.RowCount - 1 do
  begin
    Table1.Append;
    For i:=0 to StringGrid1.ColCount - 1 do
      Table1.Fields[i].Value := StringGrid1.Cells[i, j];
    Table1.Post;
  end;


 
RDen   (2005-02-01 09:57) [5]

>Johnmen (01.02.05 09:48) [3]
Согласен
Всем спасибо!



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

Форум: "Базы";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.055 c
3-1107117217
Intelect
2005-01-30 23:33
2005.02.27
КАК DELPHI взаймодействует с MSSQL у вас нет примера!


1-1107877962
_student
2005-02-08 18:52
2005.02.27
Как работать с Compound Document (он же OLE Structured Storage).


3-1106822185
anat
2005-01-27 13:36
2005.02.27
ПЕРЕСЕЧЕНИЕ не СВЯЗАННЫХ ТАБЛИЦ


4-1104985546
Strech
2005-01-06 07:25
2005.02.27
Рисование по hBitmap


3-1106729283
akvilon
2005-01-26 11:48
2005.02.27
Не показывается часть таблицы syscolumns





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