powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблемма с датой
6 сообщений из 6, страница 1 из 1
Проблемма с датой
    #33512595
Aegypty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет! Народ хелпайте .... что-то я совсем завис!
Есть код:
this->Caption="Среднесуточные архивные данные по выводу №1 (прямая) за период с "+DateToStr(this->DateTimePicker1->Date)+" по "+DateToStr(this->DateTimePicker2->Date);
this->QSelectAvg1p->Close();
this->QSelectAvg1p->SQL->Clear();
this->QSelectAvg1p->SQL->Add("SELECT DISTINCT Ap_v13.Дата, Ap_v13.Значение, Ap_v13_2.Значение, Ap_v13_3.Значение, Ap_v13_4.Значение, Ap_v13_5.Значение, Ap_v13_6.Значение, Ap_v13_7.Значение");
this->QSelectAvg1p->SQL->Add("FROM AP_V13 Ap_v13, AP_V13 Ap_v13_2, AP_V13 Ap_v13_3, AP_V13 Ap_v13_4, AP_V13 Ap_v13_5, AP_V13_M Ap_v13_6, AP_V13_M Ap_v13_7");
this->QSelectAvg1p->SQL->Add("WHERE Ap_v13.Канал=1 AND Ap_v13.Дата>='"+DateToStr(DateTimePicker1->Date)+"' ");
this->QSelectAvg1p->SQL->Add("AND Ap_v13.Канал=Ap_v13_2.Канал");
this->QSelectAvg1p->SQL->Add("AND Ap_v13.Канал=Ap_v13_3.Канал");
this->QSelectAvg1p->SQL->Add("AND Ap_v13.Канал=Ap_v13_4.Канал");
this->QSelectAvg1p->SQL->Add("AND Ap_v13.Канал=Ap_v13_5.Канал");
this->QSelectAvg1p->SQL->Add("AND Ap_v13.Канал=Ap_v13_6.Канал");
this->QSelectAvg1p->SQL->Add("AND Ap_v13.Канал=Ap_v13_7.Канал");
this->QSelectAvg1p->SQL->Add("AND Ap_v13.Дата=Ap_v13_2.Дата");
this->QSelectAvg1p->SQL->Add("AND Ap_v13.Дата=Ap_v13_3.Дата");
this->QSelectAvg1p->SQL->Add("AND Ap_v13.Дата=Ap_v13_4.Дата");
this->QSelectAvg1p->SQL->Add("AND Ap_v13.Дата=Ap_v13_5.Дата");
this->QSelectAvg1p->SQL->Add("AND Ap_v13.Дата=Ap_v13_6.Дата");
this->QSelectAvg1p->SQL->Add("AND Ap_v13.Дата=Ap_v13_7.Дата");
this->QSelectAvg1p->SQL->Add("AND Ap_v13.Параметр=206");
this->QSelectAvg1p->SQL->Add("AND Ap_v13_2.Параметр=201");
this->QSelectAvg1p->SQL->Add("AND Ap_v13_3.Параметр=211");
this->QSelectAvg1p->SQL->Add("AND Ap_v13_4.Параметр=216");
this->QSelectAvg1p->SQL->Add("AND Ap_v13_5.Параметр=221");
this->QSelectAvg1p->SQL->Add("AND Ap_v13_6.Параметр=401");
this->QSelectAvg1p->SQL->Add("AND Ap_v13_7.Параметр=406");
this->QSelectAvg1p->SQL->Add("ORDER BY Ap_v13.Дата");
this->DSSelectAvg->DataSet=this->QSelectAvg1p;
this->QSelectAvg1p->Open();

После открытия запроса выдается сообщение о несоответствии типов данных.
Я знаю что енто происходит в строке с DateTimePicker ПОМОГИТЕ сделать правильно
...
Рейтинг: 0 / 0
Проблемма с датой
    #33512623
saint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дату в dynamic sql надо передавать в правильном формате, который поддерживается вашей СУБД. Для SQL Server формат зависит от COLLATION, однако такой как правило срабатывает везде:

'yyyy-мм-дд'
...
Рейтинг: 0 / 0
Проблемма с датой
    #33512675
Aegypty
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работаю через BDE
Тот вариант что Вы предложили вызывает туже ошибку ...
Пробовал в SQL Builder строить запрос так кам он формат даты пишет как
'mm/dd/yy' но и при переводе в такой формат не работает
...
Рейтинг: 0 / 0
Проблемма с датой
    #33513425
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AegyptyРаботаю через BDE
Тот вариант что Вы предложили вызывает туже ошибку ...
Пробовал в SQL Builder строить запрос так кам он формат даты пишет как
'mm/dd/yy' но и при переводе в такой формат не работает


Глупый вопрос...
Вы когда переводили в тот или иной формат - Вы указали формат даты парсеру (как конкретно - зависит от Вашей СУБД) ? Он же не телепат, чтоб знать что Вы наваяли...

Вывидите свой SQL в строку и сбросьте в файл (либо под дебагом копирните). Запустите любой SQLQwery к Вашей СУБД, прогоните Ваш запрос отдельно. Добейтесь его рапотоспособности...Ну далее ваяйте код...


удачи Вам
(круглый)
...
Рейтинг: 0 / 0
Проблемма с датой
    #33513980
White Wolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aegypty
this->QSelectAvg1p->SQL->Add("WHERE Ap_v13.Канал=1 AND Ap_v13.Дата>=:date");


и потом
this->QSelectAvg1p->->ParamByName("date")->Value=DateTimePicker1->Date;
this->QSelectAvg1p->Open();

и вообще, старайся в SQL запросы подобные параметры вносить именно через Параметры.
это позволит не пересобирать каждый раз запрос (ускорение работы приложения) и, что более важно, запрос будет храниться в СУБД и как сделдствие быстрее обрабатываться.
По крайней мере так для MsSQL
...
Рейтинг: 0 / 0
Проблемма с датой
    #33514139
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AegyptyРаботаю через BDE
Тот вариант что Вы предложили вызывает туже ошибку ...
Пробовал в SQL Builder строить запрос так кам он формат даты пишет как
'mm/dd/yy' но и при переводе в такой формат не работает

Надо в бинарном виде передавать параметры, а не в символьном. Тогда проблем с форматом никаких в принципе не будет.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Проблемма с датой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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