Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.13;
Скачать: CL | DM;

Вниз

Проблема с IBX   Найти похожие ветки 

 
Zoostal   (2005-10-24 18:13) [0]

Был у меня написан код. И работал он собственно очень хорошо, до тех пор как я не переставил винды. Теперь, спустя 2 месяца я вернулся к проекту, и он работает просто очень странно. Сначала когда я открыл проект, я удивился что компилятор ругается на IBTransaction.AllowAutoStart. Я закаментировал, все запустилось, но стало работать странно. Потом я вспомнил что надо бы IBX обновить, скачал с ibase.ru апдейт для Дельфи 7. Поставил. IBTransaction.AllowAutoStart теперь он понимает, но... все равно работает просто ужасно странно. Точнее не работает.
Вот код

Db:=TIBDataBase.Create(nil);
Tabl:=TIBTable.Create(nil);
q:=TIBQuery.Create(nil);
IBTransaction1:=TIBTransaction.Create(nil);
IBTransaction2:=TIBTransaction.Create(nil);
Db.DatabaseName:="c:\io.gdb";
Tabl.Database:=Db;
TablModems.Database:=Db;
Q.Database:=Db;
IBTransaction1.AddDatabase(db);
IBTransaction2.AddDatabase(db);
Q.Transaction:=IBTransaction2;
Tabl.Transaction:=IBTransaction1;
IBTransaction1.AllowAutoStart:=True;
IBTransaction1.AutoStopAction:=saCommit;
IBTransaction1.Params.Add("read_committed");
IBTransaction1.Params.Add("rec_version");
IBTransaction1.Params.Add("nowait");

  Q.Close;
  Q.SQL.Text:="Select * from ExTable where status=0";
  Q.Open;

Например вот на последней строчке иногда происходит не понятное - дебуг до этой строчки доходит и выходит в небытие. То есть вроде как интефейс работает, форму можно таскать, но выполнение кода на Q.Open просто прекращается. При том через раз, то работает то нет.

         Tabl.Open;
         WasSet:=True;
Tabl.Locate("ID",q.fieldByName("ID").AsInteger,[loCaseInsensitive]);
         Tabl.Edit;
         Tabl.FieldByName("Status").AsInteger:=3;
         Tabl.Post;
         Tabl.Transaction.Commit;

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

Подскажите пожалуйста, в чем может быть дело ?


 
Noosfert   (2005-10-24 18:21) [1]

вспомнил еще одно отличие, раньше у меня был InterBase 5.5 установлен, а теперь FireBird.


 
Johnmen ©   (2005-10-24 18:41) [2]

Что-то ты темнишь.
Ибо AutoStopAction+F1 однозначно говорит про наборы данных в этой связи...:)


 
Zoostal   (2005-10-25 10:47) [3]

Я не темню. Во что AutoStopAction не ставь работает точно так же. А раньше все работало. Именно этот код работал отлмчно :(


 
Johnmen ©   (2005-10-25 10:58) [4]

Ещё вопрос.

>Q.Open;

>Например вот на последней строчке иногда происходит не понятное - дебуг
>до этой строчки доходит и выходит в небытие. То есть вроде как интефейс
>работает, форму можно таскать, но выполнение кода на Q.Open просто
>прекращается
. При том через раз, то работает то нет.

Как определил, что прекращается?


 
Noosfert   (2005-10-25 11:11) [5]

Кстати, все это реализовано в потоке, хотя это и не так важно.
В дебуге идешь по строчкам и на Tabl.Locate("ID",q.fieldByName("ID").AsInteger,[loCaseInsensitive]) просто дальше ничего не идет. Ну прям совсем. То есть на следующую строчку он уже не приходит и все...


 
Johnmen ©   (2005-10-25 11:16) [6]

>Кстати, все это реализовано в потоке, хотя это и не так важно.

М.б. важно.
Где соединение с БД?

>Tabl.Locate("ID",q.fieldByName("ID").AsInteger,[loCaseInsensitive])

Зачем loCaseInsensitive??? Убери!


 
Noosfert   (2005-10-25 11:51) [7]

убрал, ничего не изменилось.

Соединение с БД

Db.DatabaseName:="c:\io.gdb";
Db.DefaultTransaction:=IBTransaction1;
Db.Params.Add("user_name=sysdba");
Db.Params.Add("password=masterkey");
Db.LoginPrompt:=False;
Db.Open;

SqlDialect и прочие свойства я не трогал, все default"овое как конструктор их создает.


 
Johnmen ©   (2005-10-25 13:44) [8]

Ну нет у меня правдоподобных версий...
Но одно могу сказать наверняка: использование TIBTable м.привести к необъяснимым явлениям...:)
А у тебя его применение и вовсе неуместно. Ибо всё это делается простыми запросами UPDATE ...


 
Noosfert   (2005-10-25 13:57) [9]

а что есть могут быть проблемы от IBTable ? сейчас попробую все заменить. Спасибо большое, в любом случае.



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

Текущий архив: 2005.11.13;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
4-1126089449
Хинт
2005-09-07 14:37
2005.11.13
Проблема с ReadProcessMemory


14-1129728847
Shst
2005-10-19 17:34
2005.11.13
Вопрос про Select


2-1130169036
Drex
2005-10-24 19:50
2005.11.13
Указатель типа Pointer - читаем и записываем байты…


3-1127910446
B@BY
2005-09-28 16:27
2005.11.13
Как создать DBF, используя только DAO ?


4-1126632307
GanibalLector
2005-09-13 21:25
2005.11.13
Весы "Масса-К"