Форум: "Базы";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
ВнизОшибка при откате БД Найти похожие ветки
← →
Couter Terranist (2006-07-26 01:07) [0]Во время отката бази (Rollback) викидывает ошибку "Data Structure corruption". Commit оно нормально воспринимает. В даной трансакции производятсяя пару запросов и операции с новосозданной таблицей (временной). НО таблица создаётся перед началом трансакции а удаляется после.
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EDBEngineError with message "Data structure corruption.". Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
← →
Sergey13 © (2006-07-26 08:12) [1]А что, Парадокс разве работает с транзакциями?
← →
Desdechado © (2006-07-26 11:30) [2]Sergey13 © (26.07.06 08:12) [1]
AFAIR, пытается. Вроде ограничение было на количество записей. Но врать не буду, совсем склероз замучил...
> с новосозданной таблицей (временной).
И зачем на временную таблицу ролбаки и коммиты? Дропни ее и все дела.
← →
atruhin © (2006-07-26 17:41) [3]Ограничение на кол-во записей при откате.
← →
Anatoly Podgoretsky © (2006-07-26 20:39) [4]Опять парадокс и порушеная структура.
← →
Couter Terranist (2006-07-27 11:08) [5]> И зачем на временную таблицу ролбаки и коммиты? Дропни ее и все дела.
Результат работы (размышления пользователя выставлять сегодня Петрова в третью бригаду (вписал) или же не выставлять (опять стёр)) с временной таблицей добавляесться в основную таблицу - а она приличного размера и ненужные операции будут подтормаживать (+применяю фильтры).
> Ограничение на кол-во записей при откате.
А я хотел одну трансакцию на временную таблицу+запросы для ее заполнения+запись в основную. И дествительно, можно только на запись... Спасибо
← →
Romkin © (2006-07-27 11:21) [6]У db в транзакции - не более 256 записей. Ошибки не будет, но что откатится, а что нет - неизвестно, только по факту. Кстати, транзакции только dirty read. Так что нафиг, отдельная таблица - и все ручками.
← →
Couter Terranist (2006-07-27 11:54) [7]> [6] Romkin © (27.07.06 11:21)
В чем недостатки dirty read? У моей программы все виды работы з базой (назначение, з/п, отчет и т.п) разбросаны по TabSheet"ам. В каждом на OnShow и OnHide отркиваесться и закрывается трансакция. Будут неполадки при таком розкладе?
← →
Виталий Панасенко (2006-07-27 12:23) [8]Зря ты с транзакциями под Парадоксом связался. толку от них - 0.Упадет система, вырубится свет - все изменения будут внесены все равно. Транхакции в Парадоксе - блокируются записи на изменение. и в каком-то служебном файле держатся старые данные.
← →
Couter Terranist (2006-07-27 12:56) [9]> [8]
Так как лутче уберечся в Парадоксе от неполного заполнения таблиц и стохранения целосности при падении системы?
Скажем как уберечь этот кусок кода?NewFlowForm.TempTable1.First;
for i:=1 to NewFlowForm.TempTable1.RecordCount do
begin
DataModule2.StoreOutProdTable.Append;
DataModule2.StoreOutProdTable.FieldByName("OP_Date").AsDateTime:=NewFlowForm.Tem pTable1.FieldByName("Date").AsDateTime;
DataModule2.StoreOutProdTable.FieldByName("OP_Zm").AsInteger:=NewFlowForm.TempTa ble1.FieldByName("Zmina").AsInteger;
DataModule2.StoreOutProdTable.FieldByName("OP_Arthicul").AsString:=NewFlowForm.T empTable1.FieldByName("Arthicle").AsString;
DataModule2.StoreOutProdTable.FieldByName("OP_Count").AsFloat:=NewFlowForm.TempT able1.FieldByName("Count").AsFloat;
DataModule2.StoreOutProdTable.FieldByName("OP_Rem").AsString:=NewFlowForm.TempTa ble1.FieldByName("Remark").AsString;
DataModule2.StoreOutProdTable.Post;
DataModule2.StoreTable.Edit;
DataModule2.StoreTable.Locate("S_Arthicul",NewFlowForm.TempTable1.FieldByName("A rthicle").AsString,[]);
if DataModule2.StoreTable.FieldByName("S_Count").AsFloat-NewFlowForm.TempTable1.FieldByName("Count").AsFloat>=0
then DataModule2.StoreTable.FieldByName("S_Count").AsFloat:=DataModule2.StoreTable.Fi eldByName("S_Count").AsFloat-NewFlowForm.TempTable1.FieldByName("Count").AsFloat
else
begin
beep;
MessageDlg("Ââåäåíà ê³ëüê³ñòü âèâåçåíîãî òîâàðó ""+NewFlowForm.TempTable1.FieldByName("Arthicle").AsString+" "+NewFlowForm.TempTable1.FieldByName("Name").AsString+"" ïåðåâèùóº éîãî íàÿâíó ê³ëüê³ñòü íà ñêëàä³!",mtError,[mbOk],0);
DataModule2.StoreOutProdTable.EnableControls;
Exit;
end;
DataModule2.StoreTable.Post;
NewFlowForm.TempTable1.Next;
end;
← →
Виталий Панасенко (2006-07-27 14:47) [10]ПРАКТИЧЕСКИ НИКАК. "Садись" на более продвинутые движки - MS Access, FireBird. У этих "ребят" транзакции настоящие, в любом(ну, практически в любом - падает все абсолютно. зависит от условий окружающего мира :- )) случае будет обеспечена целостность данных.
← →
Couter Terranist (2006-07-27 16:16) [11]стоит ли браться за передеку проги с парадокса на акцесс (с смысле обьема роботы)?
← →
Виталий Панасенко (2006-07-27 16:28) [12]это уже тебе решать. Ты работал с БДЕ, а придется через АДО.. и многое другое. тут встречный вопрос - а так ли это все важно, что даже для временной таблицы что-то нужно выдумывать ? Один совет - пропробуешь клиент-сервер(FireBird например) от локалок будешь плеваться в дальнейшем. Даже для написания простого платежного поручения...:-))
← →
Desdechado © (2006-07-28 15:50) [13]>> И зачем на временную таблицу ролбаки и коммиты?
> Результат работы (размышления пользователя
Размышления - это процесс, а не результат. А процесс принято хранить в локальном кэше компонетов. А вот когда размышляния закончились, нажата кнопка "сохранить", тогда сохраняем в БД, в нормальную, а не временную таблицу.
← →
Виталий Панасенко (2006-07-28 15:59) [14]
> Desdechado © (28.07.06 15:50) [13]
> >> И зачем на временную таблицу ролбаки и коммиты?
> > Результат работы (размышления пользователя
> Размышления - это процесс, а не результат. А процесс принято
> хранить в локальном кэше компонетов. А вот когда размышляния
> закончились, нажата кнопка "сохранить", тогда сохраняем
> в БД, в нормальную, а не временную таблицу.
В принципе, вариант !!! Сделать кешированные обновления - тогда временная таблица нахрен не нужна !
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.013 c