Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 26.11.2009
Сообщений: 11

Отбор по дате (продолжение)

16.12.2009, 16:45. Показов 1226. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
БД FireBird.
Нужно отобразить все записи на определенную дату, в поле которых присутствует "Корпус".
Сначала писал прямо в свойстве Query1 вот так (чтобы опробовать запрос)

C++
1
2
3
4
select DISTINCT t1.CARDD, t1.CARDT, t2.ID, t2.NAME, t1.COMMENT, (BRUTTO-TARA) AS Netto 
from CARDS AS t1 left join RECIPIENT AS t2 ON (t2.id = t1.dsid)   
WHERE CARDD between '8.10.2009' and '09.10.2009' 
and t2.NAME like 'Корпус%'
Заработало. Теперь надо привязать дату к календарю.
Сделал штуку, которая увеличивает дату на 1 день (для второго параметра в between) :
C++
1
AnsiString Date = DateToStr(DateTimePicker1->Date+1);
Теперь пытаюсь всунуть все это в запрос.
C++
1
2
3
4
5
6
7
8
9
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  Query1->Active=false;
  Query1->SQL->Clear();
  Query1->SQL->Add("select DISTINCT t1.CARDD, t1.CARDT, t2.ID, t2.NAME, t1.COMMENT, (BRUTTO-TARA) AS Netto");
  Query1->SQL->Add("from CARDS AS t1 left join RECIPIENT AS t2 ON (t2.id = t1.dsid) ");
  Query1->SQL->Add("WHERE CARDD between "+DateToStr(DateTimePicker1->Date)+" and "Date" ");
  Query1->SQL->Add("and t2.NAME like 'Корпус%'");
  Query1->Active=true;
Компилятор выдает: E2121 Function call missing )
Не могу увидеть, где накосячил, помогите, пожалуйста, свежим взглядом...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.12.2009, 16:45
Ответы с готовыми решениями:

Отбор по дате
Здравствуйте! Столкнулся с такой проблемой: надо отобрать записи из таблицы по полю, содержащему дату, но без времени (дата хранится в...

Отбор по дате от и до
procedure TsStata.Button1Click(Sender: TObject); begin edit1.Text:=datetostr(DateTimePicker1.DateTime); ...

Отбор по дате
Всем доброго времени суток, я тут столкнулся с одной проблемой надеюсь на вас суть вопроса есть программа у программы есть база в в...

9
 Аватар для Ex_Soft
213 / 107 / 15
Регистрация: 28.01.2009
Сообщений: 481
16.12.2009, 18:05
1. IMHO, подсветка кода и так уже все показала
C++
1
Query1->SQL->Add("WHERE CARDD between >>>"+DateToStr(DateTimePicker1->Date)+"<<< and >>>"Date"<<< ");
2. Откройте для себя параметры
0
0 / 0 / 0
Регистрация: 26.11.2009
Сообщений: 11
17.12.2009, 08:09  [ТС]
Я конечно жутко извиняюсь, но про какие параметры идет речь? И что именно мне показала подсветка?
0
 Аватар для Ex_Soft
213 / 107 / 15
Регистрация: 28.01.2009
Сообщений: 481
17.12.2009, 08:56
Цитата Сообщение от Vasilix Посмотреть сообщение
Я конечно жутко извиняюсь, но про какие параметры идет речь?
тынць
Цитата Сообщение от Vasilix Посмотреть сообщение
И что именно мне показала подсветка?
Выделено >>> <<<
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
17.12.2009, 09:05
Vasilix, можно использовать и параметры, тогда код будет выглядеть примерно так:
"CARDD between 1 and p2", как туда передать параметры подробно написано в хелпе... если будет лень читать, то можно так:
C++
1
2
3
4
  AnsiString date1 = DateToStr(DateTimePicker1->Date), 
  date2 = DateToStr(DateTimePicker2->Date)
  ...
  Query1->SQL->Add("WHERE CARDD between '"+date1+"' and '"+date2+"'");
0
 Аватар для Ex_Soft
213 / 107 / 15
Регистрация: 28.01.2009
Сообщений: 481
17.12.2009, 09:22
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
можно так:
C++
1
Query1->SQL->Add("WHERE CARDD between >>>'"+date1+"'<<< and >>>'"+date2+"'<<<");
/me думает: можно... Но тогда следующий вопрос ТС будет об ошибке формата даты/десятичного разделителя в зависимости от региональных настроек. Ну, а про SQL-injection я пока вообще промолчу.
Давайте учить людей хорошему - плохому они и сами научатся.
0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
17.12.2009, 09:31
Ex_Soft, ну во-первых, 99% пришедших на форум рассчитывают на готовый код. читать - это для ламеров, им все форум расскажет, во-вторых, все настройки легко настраиваться с помощью DecimalSeparator и ShortDateFormat, ну и прочих переменных форматирования (тоже полезно это все знать хотя бы для расширения кругозора)
0
 Аватар для Ex_Soft
213 / 107 / 15
Регистрация: 28.01.2009
Сообщений: 481
17.12.2009, 09:45
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
все настройки легко настраиваться с помощью DecimalSeparator и ShortDateFormat, ну и прочих переменных форматирования
Были прецеденты, когда установка внутренних VCL'евских переменных (в частности extern PACKAGE char DecimalSeparator) не возымела действия. И все FloatToStrF и иже с ними форматировали в соответствии с пользовательскими региональными настройками. Тоже, BTW, информация для, так сказать, расширения кругозора...
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
тоже полезно это все знать хотя бы для расширения кругозора
Так почему же Вы ТС об этом не сказали? Превентивные меры, так сказать...

Не по теме:


Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
99% пришедших на форум рассчитывают на готовый код
Это их личное половое горе. Я лично придерживаюсь принципа: дай человеку рыбу, и ты накормишь его только раз. Научи его ловить рыбу- он будет кормиться ею всю жизнь. Ну и полностью поддерживаю
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
читать - это для ламеров
/me думает: гм... А для кого же тогда пишут букварики а-ля "Как зтат хакиром за 21 ден"? :)

0
Почетный модератор
 Аватар для Lord_Voodoo
8785 / 2538 / 144
Регистрация: 07.03.2007
Сообщений: 11,873
17.12.2009, 10:05
Ex_Soft,
Цитата Сообщение от Ex_Soft Посмотреть сообщение
Были прецеденты, когда установка внутренних VCL'евских переменных (в частности extern PACKAGE char DecimalSeparator) не возымела действия.
честно говоря, я такое встречал только в случаях, когда на машине была установлена 1С, она любит региональные настройки под себя настраивать... а так в принципе чаще всего проблем не бывает... хотя, конечно, проще всего использовать все же параметры, тогда форматирование остается на совести объекта, выполняющего запрос к базе...
0
 Аватар для Ex_Soft
213 / 107 / 15
Регистрация: 28.01.2009
Сообщений: 481
17.12.2009, 10:17
Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
когда на машине была установлена 1С
Поскольку ПО эксплуатировалось по все стране, то точно этиологию данного феномена установить не удалось. У себя воссоздать ситуацию не получилось, а в распоряжении были только логи.

Цитата Сообщение от Lord_Voodoo Посмотреть сообщение
проще всего использовать все же параметры
"Не нужно, а - должно" Других вариантов - нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.12.2009, 10:17
Помогаю со студенческими работами здесь

Отбор записей по дате
Здравствуйте! Есть сайт с привязанной базой MySQL. В нужной таблице находится информация о проведенных работах (ID, клиент, дата). На...

Сделать отбор по дате
Надо сделать отбор по дате Что бы SQL выводил данные от заданного числа. Но уже битый час мучаюсь ничего не рбаотает. Понял лишь...

Отбор по дате регистратора
Доброго времени суток) Как можно сделать отбор записей непериодического подчиненного регистратору регистра сведений по дате...

Отбор в отчетах по дате
Привет всем,не получается сделать отбор в отчетах по дате, делаю по учебнику Радченко, но не работает, все равно выводит все записи. 1с...

Отбор по дате и организации
У меня проблема сделал отчет отбор по дате и т.д, но возникла потребность что бы отбор так же по организации. В итоге у меня получилось...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru