수고 많습니다.
Q/A에 찾아보니 Null 사용에 대한 여러가지을 찾았습니다.
그런데 궁금한것은
퀴리에서
1 isNull(Matr_Color,'');
1 is Null(Matr_Color,'');
2 (Matr_Color,is Null);
2 (Matr_Color, isNull);
3 where Matr_Color is Null;
3 where Matr_Color isNull;
이것이 무슨 차이가 있는지 간단 설명을 부탁 드립니다.
그리고
with Query1 do
begin
Close;
Sql.Clear;
Sql.Add('select * From StoNow ');
Sql.Add('where Matr_Code =:p1 and Matr_Size =:p2 ');
Sql.Add('and isNull(Matr_Color =:p3, '') ');
ParamByNAme('p3').asstring :=SCells[29, i4];
ParamByNAme('p1').asstring :=SCells[27, i4];
ParamByNAme('p2').asstring :=SCells[28, i4];
Open;
이렇게 했습니다.
isNull(Matr_Color =:p3, ''); 이부분에서 에러가 발생합니다.
'Missing right Quote'
제가 원하는것은 Matr_Color가 값이 있을수 있고 없을 수가 있습니다.
값이 있을때는 있는 값을 가지고 오고 없을때는 없는 값을 가지고 오며 되는데
...
퀴리에서 Null 사용법을 알고 싶습니다.
많은 답변을 부탁 드립니다.
아래는 하고 안되어서 편법을 동원 하였습니다.
그럼 수고 하세요
감사 합니다.
with Query1 do
begin
Close;
Sql.Clear;
Sql.Add('select * From StoNow ');
Sql.Add('where Matr_Code =:p1 and Matr_Size =:p2 ');
if test3 <> '' then
begin
Sql.Add('and Matr_Color =:p3 ');
ParamByNAme('p3').asstring :=SCells[29, i4];
end
else if test3 = '' then
begin
end;
ParamByNAme('p1').asstring :=SCells[27, i4];
ParamByNAme('p2').asstring :=SCells[28, i4];
Open;
ISNULL(파라메타-1,파라메타-2)의 내용을 보면
파라메타-1값이 NULL값(즉,공백이 아닌 NULL값)이면
파레메타-2의 값을 리턴받아서 출력하는 함수입니다.
참고로
Sql.Add('and isNull(Matr_Color =:p3, '') 의 코딩은 좀 문제가
있는것 같은데,
님의 의도가 무엇을 표현 할 예정인지는 모르겠군요.
오늘도 즐겁게.......