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

Вниз

Проблема с 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.042 c
14-1129889736
dr Tr0jan
2005-10-21 14:15
2005.11.13
Побор телефона


1-1127988882
dracula
2005-09-29 14:14
2005.11.13
Копирование битых файлов.


6-1122621029
vajo
2005-07-29 11:10
2005.11.13
Загрузка файла из Интернета, а не с прокси


1-1129788909
Zhekson
2005-10-20 10:15
2005.11.13
Как на определённое время повесить надпись поверх всех окон?


14-1129885338
User133
2005-10-21 13:02
2005.11.13
Windows2000 и права пользователя





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