예전 게시글에도 같은 내용이 있었던 내용입니다.
거기에 대한 답글이 없어 이렇게 문의 드립니다.
BDE 를 DBExpress 로 변환 과정중에 TQuery 에서는 문제가 없던게 TSQLQuery로
변환하여 돌리면 에러가 발생합니다.
error 가 발생
sql state 42000
error code = 0
이런 에러가 발생함니다
1 Sql.Clear;
2 Sql.Add('select icode, rtrim(ite_name + '' '' + ite_size) iname,');
3 Sql.Add(' substring(cyymmdd,7,2) as cday, sum(cqty) as cqty, sum(camt)/1000 as camt');
4 Sql.Add(' from (');
5 Sql.Add(' select sal_ite_code as icode, sal_mem_code as ccode, sal_yymmdd as cyymmdd,');
6 Sql.Add(' sum(sal_qty) as cqty, sum(sal_amt) as camt');
7 Sql.Add(' from sale');
8 Sql.Add(' where sal_flag = ''1''');
9 Sql.Add(' and sal_ite_code between :MFr and :MTo');
10 Sql.Add(' and sal_yymmdd between :DFr and :DTo');
11 Sql.Add(' group by sal_ite_code, sal_mem_code, sal_yymmdd');
12 Sql.Add(' having sum(sal_box) <> 0');
13 Sql.Add(' ) tmp');
14 Sql.Add(' left outer join item on ite_code = icode');
15 Sql.Add(' group by icode, ite_name, ite_size, cyymmdd');
16 Sql.Add(' order by icode, cyymmdd');
ParamByName('DFr').AsString := EdDFr.Text;
ParamByName('DTo').AsString := EdDTo.Text;
ParamByName('MFr').AsString := EdMFr.Text;
ParamByName('MTo').AsString := EdMTo.Text;
Open;
그런데 ParamByName 절을 빼면 이상 없이 수행이 되는데 ,
ParamByName는 어찌 해결해야 하나요??
참고로 5~12 라인만 뽑아 수행하면 ParamByName 절을 넣어도 잘 됩니다.
도통 원인을 모르겠네요.. 고수님들의 답변 부닥트립니다.
|