Q&A

  • ADO쿼리이런경우가있으셨는지..
간단한 가계부 비슷한 플그램입니다.

원도2000프로
델파이5.0
ADO쿼리...


쿼리컨포넌트만 써서..
달력 컨포의 날짜 클릭시마다 셀렉트문 돌려 결과를 얻어내는 구조입니다.

황당한건..
개발한 컴퓨터나 옆의 분 컴퓨터에서는 실행화일이 잘 돌아가 집니다.
아무 에러없이~~~깨끗하게....
그런데 어떤 컴퓨터에서는....달력 클릭시에 에러가 뜨는군요..

(에러메시지는 Bof 또는 Eof 머라 머라...나오는데...애궁 까먹었다)

또한 셀렉트 문에 like '김%'....
이렇게 하면 김으로 시작하는 모든게 다 나오는거 맞잖아요..
그런데 이 문장도 개발한 컴에서는 잘 먹는데..

다른 컴에서는 안되네요..
김* 로 인식을 안하고 김% 자체를 하나의 문장으로 인식하는거 같습니다.


운영체젠 똑같이 윈2000프로구요..

ocx나 dll은 쓰지 않았습니다.
엑세스파일도 동적 생성 안하고 만들어진걸 이용하거든요...


혹시나 이런 증상의 원인을 아시는 분은 설명 부탁 드립니다.



문제가 되는 쿼리문입니다..
procedure TForm1.calDATEChangeV(onDATE:TDate);
var
temp:string;
begin
//showmessage(DBpathname);
ProgressBar1.Position:=50;
temp:=FormatDateTime('YYYY-MM-DD',onDATE); //날짜만 받아오기
    with ADOQuery1 do
    begin
        Close;
        ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source='+DBpathname+'TrueM.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=ybs401;Jet OLEDB:Eng';

        SQL.Clear;
        SQL.Add('select ADate, AName, AHungname, AHungValue from MainTbl where aDate = :Qdate order by aName, aHungname');
        Parameters.ParamByName('Qdate').Value := StrToDate(temp);
        ProgressBar1.Position:=100;
        Open;
    end;
ProgressBar1.Position:=0;
end;
2  COMMENTS
  • Profile
    강형철 2003.09.30 20:57
    엑세스에서는 LIKE 에서 %는 잘 않먹힙니다.. 다른 디비랑 좀 틀리져

    % 대신에 *를 사용하면 됩니다~~ 혹은 * 1개도 않될경우가 있더라구여

    그럴땐 * 2개를 사용하면 해결됩니다~~
  • Profile
    이태환 2003.09.30 09:19
    흐음..

    델파이 5 ADO 는 MDAC 2.7에선 오동작을 합니다. 그리구 약간의 버그도 있구여
    (예를들어 AdoQuery.recordcount 를 확인해보세요.. ㅎㅎ)

    안되는 컴터의 MDAC 버젼을 확인해보시구여 델파이 5 패치 2까지 패치시키세요

    델파이5 패치는 자료실 뒤져보믄 있습니다. 주의하실것은 패치 1 하고나서 패치 2를 하세요. 순서 뒤바뀌면 델파이를 다시까는수가 생깁니다.

    저두 예전에 '파일의 EOF BOF 가 참이거나.. 어쩌구 저쩌구..' 이런 오류가 벅벅나서

    패치시켰더니 자알~ 되더군요 *^^*

    그럼 즐푸~ 하세요