Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / c++b6 + ado + foxpro / 3 сообщений из 3, страница 1 из 1
04.03.2009, 11:42
    #35850299
tigr1945
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c++b6 + ado + foxpro
Добрый день есть программа по синхр. 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 запись (тоесть в теории запрос который не обновляет должен обновить)
...
Рейтинг: 0 / 0
04.03.2009, 11:53
    #35850339
homik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c++b6 + ado + foxpro
А к моменту запроса
Код: plaintext
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) "; так не обновляет

Изменение в 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
sql_txt=" select * from otm where tn=12525 and date={^2007.03.22} and time_i=8.31 and time_o=9.47"; дает  1  запись (тоесть в теории запрос который не обновляет должен обновить)

Другой разницы не видно.
...
Рейтинг: 0 / 0
04.03.2009, 12:26
    #35850450
tigr1945
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
c++b6 + ado + foxpro
да переносит оно на сервер,
но на клиента не ставит флаг выезда пробывал и без скобок ничего
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / c++b6 + ado + foxpro / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]