Q&A

  • insert 후에 결과값 return 방법...
안녕하세요.
현재 로컬 DB를 사용하고 있습니다.(MS ACCESS)
테이블의 KEY 필드의 타입은 일련번호 입니다.
델파이에서 INSERT 쿼리를 날린 후
새롭게 저장된 레코드의 KEY  값 , 즉 일련번호를 가져오려고 합니다.
[QUERY]
query := 'insert into tbl_account (write_date,store,sort_code) ' +
                 'values (:write_date,:store,:sort_code) ' ;
with ADOQuery2 do
        begin
            close;
            sql.clear;
            sql.add(query);
            Parameters.ParamByName('write_date').value :=  
                        FormatDateTime('MM-DD-YYYY', write_date.Date ) ;
            Parameters.ParamByName('store').value := store.text;
            Parameters.ParamByName('sort_code').value :=
                        sort_code.value;
            open;
        end;
이렇게 하고 나서 결과값 (즉 키값)을 받아 아래과 같이
vaccount_code := adoquery2.fieldbyname(account_code').asinteger;

adoquery1.Locate('account_code',inttostr(vaccount_code),[]);

이렇게 사용하려고 하는데...

이렇게 하니 "현재 공급자가 하나의 실행으로 여러개의 레코드 집합을 반환하는것을 지원하지 않습니다" 이렇게 나오네요... -_-;

어떻게 하면 방금 입력한 레코드이 일련번호(키값)을 받아 올 수 있나요?
부탁합니다.
2  COMMENTS
  • Profile
    손희석 2003.12.30 08:22
    TADOQuery컴포넌트로 쿼리를 보내지 말고 TAdoConnection이나 TADOCommand컴포넌트의 Excute 메서드를 사용해 보시길..

    리턴값이 레코드 셋이니까요..

    그럼 도움이 되시길 바라며 즐프하세요
  • Profile
    연기훈 2003.12.30 01:18
    정확한 문제가 무었인진 모르겠지만..

    우선

    OPEN을 ExecSQL으로 수정하셔야 하고여...

    다시 Select SQL을 날려서 값을 가지고 오셔야 합니다.