Active := False;
SQL.Clear;
SQL.Text := 'Select c_ip, count(*) as Contents,'+
' InDateTime,OutDateTime from OptDB'+
' where (InDateTime >= :aFrom) and '+
'(InDateTime < :aTo) '+
' group by c_ip order by c_ip,media_ip';
ParamByName('aFrom').asDateTime := Trunc( DatePeriodFrom.Date);
ParamByName('aTo').asDateTime := Trunc(DatePeriodTo.Date + 1);
Active := True;
이렇게 했는데 operation not applicable 에러가 생기는군요..
전혀 이해할 수가 없는 에럽니다..코드도 이상이 없는데..
게시판을 다 뒤져봤는데 이런 문제점을 제기한 사람은 많은데 해결안은 하나도 없더군요...
코더의 잘못인지 아니면 근본적으로 델파이 프로그램의 오류인지 조차 모르겠습니다..
ODBC로 mysql서버에 연결해서 디비를 쿼리하는 부분인데요,디버깅해보니 Actvie:=true;에서 에러가 발생하네요...
어떻게 해결할 수 있는 방법이 없는지요..
제 컴 두대에서는 잘 돌아가는데 다른데서는 안돌아가니..이것도 미칠 노릇이군요...타입이 안 맞다거나 신텍스 오류가 있다면 모든 컴에서 다 안돌아가야 할터인데...쩝..도와주십시요...
글쎄요.. 님의 컴 두대에선 잘돌아간다니.. 이상합니다만..
위의 쿼리를 맞게쓰셨는지모르겠지만.. 안돼는 쿼리입니다.
group by c_ip, IndateTime, OutDateTime 으로 그룹을 지정해주시던가
아니면 IndateTime 과 outdatetime 을 select 문에서 빼주셔야합니다.
맞는예)
SQL.Clear;
SQL.Add('Select c_ip, count(*) as Contents');
SQL.Add('from OptDB');
SQL.Add(where InDateTime >= :aFrom and');
SQL.Add('InDateTime < :aTo);
SQL.Add('group b c_ip);
SQL.Add('order by c_ip, , media_ip');