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

Вниз

изменения значения IBX   Найти похожие ветки 

 
BeginerEmpty   (2005-02-21 11:59) [0]

У меня в потоке работает вот такой код. Поле "статус" при добавлнии стояло равным 0. В этом месте я отслеживаю изменение статуса. Однако когда я IBExpert"ом меняю значение этого поля, ничего не происходит и статус=0 хотя в базе уже другое значение.

В чем может быть дело ???

while not Reciv do
 begin
  Q.Close;
  Q.SQL.Text:="Select * from ExTable where id="+IntToStr(idmon);
  Q.Open;
  if Q.RecordCount>0 then
   if Q.FieldByName("Status").AsInteger<> 0 then
    begin
     Reciv:=False;
    end;
   Sleep(1000);
 end;


 
Sergey13 ©   (2005-02-21 12:03) [1]

В Эксперте комит делаешь?


 
BeginerEmpty   (2005-02-21 12:06) [2]

да, делаю. даже отконекчиваюсь от базы и подключаюсь снова. Значение изменено, но программа не реагирует, показывает 0 в поле статуса.


 
Johnmen ©   (2005-02-21 12:12) [3]

Вот это условие if Q.RecordCount>0 then в данном антураже ВСЕГДА будет возвращать False.


 
BeginerEmpty   (2005-02-21 12:19) [4]

Это условие всегда срабатывает, почему оно не должно срабатывать ? Не срабатывает следующее if Q.FieldByName("Status").AsInteger<> 0
хотя в базе значение поменялось. Может быть что-то связано с CacheUpdate ? я IBX пользуюсь первый раз.


 
Sergey13 ©   (2005-02-21 12:22) [5]

2 BeginerEmpty  
Чему равно Reciv до цикла? Подозреваю что False.
В
  if Q.FieldByName("Status").AsInteger<> 0 then
   begin
    Reciv:=False;
   end;

else не хочешь добавить? Иначе как оно сменится то?
if Q.FieldByName("Status").AsInteger= 0 then  Reciv:=False
 else  Reciv:=True;


 
BeginerEmpty   (2005-02-21 12:26) [6]

спасибо, CacheUpdate поставил вроде все заработало :)


 
BeginerEmpty   (2005-02-21 14:54) [7]

Народ, спасайте !! Не работает ничего. Не видит внешние обновления таблиц которые я делаю в IB Expert"е, хоть трава не расти :((((

Db.Connected:=True;
Tabl.Active:=True;
Q.SQL.Text:="select gen_id(extablegen, 1) from rdb$database";
Q.Open;
idmon:=Q.fieldByName("GEN_ID").AsInteger;
Q.Close;
Tabl.Append;
Tabl.FieldByName("ID").AsInteger:=idmon;
Tabl.FieldByName("TYPE").AsInteger:=0;
Tabl.FieldByName("STATUS").AsInteger:=0;
Tabl.FieldByName("DATA").AsString:=Wht;
Tabl.Post;
IBTransaction1.Commit;

Reciv:=False;
while not Reciv do
 begin
  Q.Close;

  Q.CachedUpdates:=False;
  Q.SQL.Text:="Select * from ExTable where id="+IntToStr(idmon);
  Q.Open;
  if Q.RecordCount>0 then
   if Q.FieldByName("Status").AsInteger<> 0 then
    begin
     Reciv:=True;
    end;
   Sleep(1000);
 end;

Меняю значения поля "статус" но ничего не происходит :((((


 
Sergey13 ©   (2005-02-21 15:23) [8]

А отладчиком по [3] Johnmen ©   (21.02.05 12:12) проверял? Заходит в ветку?


 
BeginerEmpty   (2005-02-21 15:27) [9]

В ветку входит но показывает 0. Попробывал не Query а таблицу. В цикле закрываю ее, открываю заново и ищю по ИД нужную строку. Все равно не видит изменений, хотя SqlExplorer и IBExpert показывают что значение изменилось. такое ощущение что пока база не пересоедениться он эти изменения не видит, видит только свои.


 
Johnmen ©   (2005-02-21 15:30) [10]

>В ветку входит но показывает 0.
>if Q.RecordCount>0 then

?!


 
BeginerEmpty   (2005-02-21 15:42) [11]

нет, recordcount срабатывает нормально, запись он находит. А вот следующую проверку Q.FieldByName("Status").AsInteger не проходит потому что эта сволочь все равно равно 0 :(((( Почему так я не понимаю. Если переподключить базу то все нормально, но это не метод. Я вообще в глубокой депрессии - не знал что можно поймать затык в почти целый рабочий день, хотя когда это кончиться не знаю :((


 
BeginerEmpty   (2005-02-21 15:43) [12]

нет, recordcount срабатывает нормально, запись он находит и там 1. А вот следующую проверку Q.FieldByName("Status").AsInteger не проходит потому что эта сволочь все равно равно 0, хотя в базе она уже другое значение имеет  :(((( Почему так я не понимаю. Если переподключить базу то все нормально, но это не метод. Я вообще в глубокой депрессии - не знал что можно поймать затык в почти целый рабочий день, хотя когда это кончиться не знаю :((


 
Johnmen ©   (2005-02-21 15:50) [13]

>хотя когда это кончиться не знаю :((

А я знаю.
Когда книжку почитаешь по теме...:)


 
Sergey13 ©   (2005-02-21 15:58) [14]

2[12] BeginerEmpty   (21.02.05 15:43)
>нет, recordcount срабатывает нормально, запись он находит и там 1
по твоему recordcount находит запись? Интересное предположение. 8-)
Если уж так приспичило сделай перед   if Q.RecordCount>0 then
Q.FetchAll или Q.Last


 
BeginerEmpty   (2005-02-21 15:59) [15]

Johnmen ©
спасибо за совет :))) Все вроде заработало, я создавал IBTransaction вручную, а оказывается при этом по умолчанию read_commited и no_wait не стоит...

Всем ОГРОМНОЕ спасибо что мне помогли. Жутко когда не знаешь что делать и никто не отвечает ! Спасибо!



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

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

Наверх





Память: 0.49 MB
Время: 0.04 c
1-1109860385
SAI
2005-03-03 17:33
2005.03.20
Memo


4-1107995867
FAQ
2005-02-10 03:37
2005.03.20
Как можно из Дельфи узнать скорости вращения вентиляторов ?


3-1108582133
dreamse
2005-02-16 22:28
2005.03.20
Проблема с сохранением и востановлением базы в MS SQL


14-1109693539
Гарри Поттер
2005-03-01 19:12
2005.03.20
Тест на знание великого могучего


14-1109819056
Doxygen
2005-03-03 06:04
2005.03.20
Adobe против Microsoft





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