|
c++b6 + ado + foxpro
|
|||
---|---|---|---|
#18+
Добрый день есть программа по синхр. 2-х таблиц. контролер пишет данные в таблицу1 (дата таб№ и спуск выезд) где спуск и выезд это время программа должна переносить записи если перенесло и спуск и выезд то ставит флаг_спуск и флаг_выезд=1 но проблема получается тогда когда: контролер записал спуск, программа записала в таблицу_2 спуск и таблицу_1 флаг_спуск =1 затем проходит время и контролер пишет в туже строку выезд программа находит строку в которой появился выезд и нестоит (флаг_выезд=1 тоесть мыее еще не перенесли до конца) она успешно пененосит выезда в таблицу_2 но когда делается запрос на обновить флаг_спуск =1 то update не стробатывает а если сделать такойже select то он находит строку которую не находит update void __fastcall TForm1::Button6Click(TObject *Sender) { Mod->ClientFlags->Active=false; AnsiString sql_txt=""; sql_txt=" select * from otm where tn=12525 and date={^2007.03.22} and time_i=8.31 and time_o=9.47"; Mod->ClientFlags->Close(); Mod->ClientFlags->SQL->Clear(); Mod->ClientFlags->SQL->Add(sql_txt); Mod->ClientFlags->Active=true; Edit1->Text=Mod->ClientFlags->RecordCount; } //--------------------------------------------------------------------------- void __fastcall TForm1::Button8Click(TObject *Sender) { AnsiString sql_txt=""; AnsiString sql_txt=""; sql_txt="update otm set flag_out=1 where (tn=12525) and (date={^2007.03.22}) and (time_i=8.31) and (time_o=9.47)"; Mod->ClientFlags->Close(); Mod->ClientFlags->SQL->Clear(); Mod->ClientFlags->SQL->Add(sql_txt); Mod->ClientFlags->ExecSQL(); } тоесть имеем sql_txt="update otm set flag_out=1 where (tn=12525) and (date={^2007.03.22}) and (time_i=8.31) and (time_o=9.47) "; так не обновляет sql_txt="update otm set flag_out=1 where (tn=12525) and (date={^2007.03.22}) and (time_i=8.31) "; так обновляет sql_txt=" select * from otm where tn=12525 and date={^2007.03.22} and time_i=8.31 and time_o=9.47"; дает 1 запись (тоесть в теории запрос который не обновляет должен обновить) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2009, 11:42 |
|
c++b6 + ado + foxpro
|
|||
---|---|---|---|
#18+
А к моменту запроса Код: plaintext
Изменение в time_o=9.47 уже внесено и скинуто на сервер ? Если да, то Зачем здесь стоят скобки в логических выражениях ( tn=12525 ) , ( date={^2007.03.22} ) ..... Попробуйте tn=12525 and date={^2007.03.22} and time_i=8.31 and time_o=9.47, также как и в запросе проверки. Код: plaintext
Другой разницы не видно. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2009, 11:53 |
|
|
start [/forum/topic.php?fid=41&msg=35850450&tid=1586705]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 322ms |
total: | 458ms |
0 / 0 |