[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