[oodisc] Передать нечисловой пареметр запросу SQL.
Gennadiy Redko
uit1 на zaz.zp.ua
Ср Июл 28 19:39:36 MSD 2004
Добрый день.
Я уже писал по этому поводу, но видимо слишком сумбурно.
Попробую задать свой вопрос яснее, может кто-нибудь да подскажет.
Задача -- сделать отчет о проплатах на основе данных БД об оплатах.
Данные достаются запросом SQL.
Для простоты запроса, предположим, что все данные лежат в одной таблице,
с названием PLAT.
Используемые поля:
DT - дата создания платежного поручения, формат - дата
DT_POL - дата оплаты, формат - дата
SP - шифр клиента, формат - числовой.
S - сумма оплаты
NAZ - Назначение платежа, формат - текст
ND - Номер платежного поручения, формат - числовий
1. Строим запрос, в котором для начала параметры задаем явно:
SELECT "ND", "DT", "DT_POL", "S", "NAZ" FROM "PLAT" WHERE "DT" BETWEEN
'01.04.2004' AND '09.06.2004' AND "SP" = 66 ORDER BY "DT", "ND"
Работает.
С помощью мастера отчетов/форм создаем отчет - тоже работает.
Но хочется, чтобы можно было в форме задать клиента и период, за который
ему платили деньги. Поэтому
2. Пытаемся задать клиента, вводя его шифр:
SELECT "ND", "DT", "DT_POL", "S", "NAZ" FROM "PLAT" WHERE "DT" BETWEEN
'01.04.2004' AND '09.06.2004' AND "SP" = :klient ORDER BY "DT", "ND"
Работает.
При выполнении запроса выскакивает подформа, в которую вколачиваем
код клиента.
3. Пытаемся задать конечную дату:
SELECT "ND", "DT", "DT_POL", "S", "NAZ" FROM "PLAT" WHERE "DT" BETWEEN
'01.04.2004' AND ':dateend' AND "SP" = :klient ORDER BY "DT", "ND"
Это почему то работать не хочет, причем с разными кавычками и даже при
использовании функций SQL to_end/to_char .
Может, конечно, я не все варианты перебрал, а может вообе это нужно
делать по другому?
Подробная информация о списке рассылки Oo-discuss