Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
ВнизПередача параметра со значение NULL Найти похожие ветки
← →
alex810810 © (2012-03-23 15:06) [0]Всем добрый день. Есть запрос.
DataOtchet1.Выбор_объектов_факт.Params[0].Value:=шифр;
DataOtchet1.Выбор_объектов_факт.Params[1].Value:=начальная_дата1;
DataOtchet1.Выбор_объектов_факт.Params[2].Value:=конечная_дата1;
if блок="" then
begin
DataOtchet1.Выбор_объектов_факт.Params[3].Value:=Null ;
end;
if блок<>"" then
begin
DataOtchet1.Выбор_объектов_факт.Params[3].Value:=блок;
end;
DataOtchet1.Выбор_объектов_факт.Execute;
DataOtchet1.Выбор_объектов_факт.First;
но в этой строке значение NULL не передается
пробывал и так
DataOtchet1.Выбор_объектов_факт.Params[3].AsString:=Null ;
Подскажите как передать параметром значение NULL
← →
Anatoly Podgoretsky © (2012-03-23 15:17) [1]> alex810810 (23.03.2012 15:06:00) [0]
DataOtchet1.Выбор_объектов_факт.Params[3].Clear конечно если твоя СУБД
поддерживает
← →
alex810810 © (2012-03-23 15:18) [2]CУБД Oracle тоже пробывал не помогает. Когда передавать параметр на сохранение срабатывает, а на выборку нет.
← →
Anatoly Podgoretsky © (2012-03-23 15:23) [3]Вроде как Оракл не поддерживает, у них нет NULL для строк.
← →
alex810810 © (2012-03-23 15:26) [4]
SELECT distinct a.kod_obekta
FROM jurnal026br12010 a
where a.shifr_obekta=058-2362-10-00517-00000" and a.data_provedeniy_rabot between to_date("01.02.2012","dd.mm.yyyy") and to_date("29.02.2012","dd.mm.yyyy")
and (a.priznak_otgula="Работа в выходной" or a.priznak_otgula is null) and
nomer_bloka=is null
если параметры вручную прописать то все срабатывает
← →
alex810810 © (2012-03-23 15:27) [5]А вот параметром не получается.
← →
Ega23 © (2012-03-23 15:38) [6]попробуй так:
var
v: variant;
begin
DataSet.CommandText := "select xxx from yyy where (:param1 is null or :param2=zzz)";
if блок = "" then
v := null
else
v := блок;
DataSet.ParamByName("param1").Value = v;
DataSet.ParamByName("param2").Value = v;
← →
alex810810 © (2012-03-23 15:50) [7]Нет. Пишет [1]: ORA-00920: invalid relational operator
← →
sniknik © (2012-03-23 15:53) [8]> :param2=zzz)";
тут ошибка (ни или может быть ошибка), нужно так
:param2 =zzz)";
← →
alex810810 © (2012-03-23 15:53) [9]Оказалось проше сделать так =)
if блок="" then
begin
DataOtchet1.Выбор_объектов_факт.SQL.Text:="SELECT distinct a.kod_obekta "+
"FROM "+ "jurnal"+UPromejutochnay.код_цеха+"br"+код_бригады_табель+UPromejutochnay.год_открытия+
" a where a.shifr_obekta="""+шифр+""" and a.data_provedeniy_rabot between to_date("""+начальная_дата1+""""+
",""dd.mm.yyyy"") and to_date("""+конечная_дата1+""",""dd.mm.yyyy"")"+
" and (a.priznak_otgula=""Работа в выходной"" or a.priznak_otgula is null) and nomer_bloka is null";
end;
if блок<>"" then
begin
DataOtchet1.Выбор_объектов_факт.MacroByName("jurnal026br12010").Value:=
"jurnal"+UPromejutochnay.код_цеха+"br"+код_бригады_табель+UPromejutochnay.год_открытия;
DataOtchet1.Выбор_объектов_факт.Params[0].Value:=шифр;
DataOtchet1.Выбор_объектов_факт.Params[1].Value:=начальная_дата1;
DataOtchet1.Выбор_объектов_факт.Params[2].Value:=конечная_дата1;
DataOtchet1.Выбор_объектов_факт.Params[3].Value:=блок;
end;
хотя хотелось бы этого избежать =)
← →
Ega23 © (2012-03-23 16:54) [10]
> тут ошибка (ни или может быть ошибка), нужно так
> :param2 =zzz)";
>
Тогда уж zzz=:param2 :)
> Оказалось проше сделать так =)
Скажи, а чем тебя else не устраивает? Религия запрещает?
Не, оно конечно ненаказуемо. Но ввергает в содрогание.
function ConvertBooleanValue(Value: Boolean): Boolean;
begin
if Value = True then
begin
Result := False;
end
else
begin
if Value = False then
begin
Result := True;
end
else
begin
raise Exception.Create("Unknown boolean value")
end;
end;
end;
:)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.061 c