|
Тема |
Помощ за InterBase |
|
Автор |
st3O (непознат
) |
|
Публикувано | 24.08.07 11:39 |
|
|
Здравейте,
трябва за кратко време да пренапиша един проект за склад, който е с Paradox таблици и трябва да стане на InterBase, за да може да се ползва през Internet. Изчетох някой неща, но не успях да разбера за управлението на транзакциите... много параметри, много възможности... в проекта няма да има "дълги" транзакции, т.е. такива, които да чакат въвеждане на данни от потребителя. Параметрите в IBTransaction са ми следните:
read_committed
rec_version
wait
а за писане в базата данни ползвам следния код:
If MainForm.IBTransaction1.InTransaction Then MainForm.IBTransaction1.Commit;
MainForm.IBTransaction1.StartTransaction;
try
MainForm.IBUpdateSQL1.ModifySQL.Clear;
MainForm.IBUpdateSQL1.ModifySQL.Add('insert into info (ident,d_code,d_info,d_date,d_time,pc_host,pc_ip,program) values ( '+chr(39)+User.Id+chr(39)+
', '+chr(39)+info1+chr(39)+', '+chr(39)+info2+chr(39)+', '+chr(39)+IntToStr(day)+'.'+IntToStr(Month)+'.'+IntToStr(Year)+chr(39)+
', '+chr(39)+IntToStr(Hour)+':'+IntToStr(min)+':'+IntToStr(sec)+':'+IntToStr(MSec)+chr(39)+
', '+chr(39)+user.Host+chr(39)+', '+chr(39)+user.IP+chr(39)+', '+chr(39)+'EKSBEL'+chr(39)+')');
MainForm.IBUpdateSQL1.ExecSQL(ukModify);
MainForm.IBTransaction1.Commit;
except
MainForm.IBTransaction1.Rollback;
Application.MessageBox('Грешка при транзакция - таблица INFO','Грешка',MB_OK);
Моля разбиращите тук да погледнат кода и параметрите на IBTransaction и да ми намерят грешките... сигурно няма да са малко
и друго - ако трябва да добавя 10-20 или повече записа в една транзакция как се прави? всичко между StartTransaction и Commit ли се счита за една транзакция? А този параметър "AllowAutoStart" на IBTransaction не означава ли автоматичен commit ?
|
| |
|
|
|