Q&A

  • [긴급질문] ADO를 사용한 DB입니다.
procedure TForm1.db_refresh;

var

i : integer;

begin

ClearGrid;

ADOQuery1.sql.Clear;

ADOQuery1.sql.Add(sql_main);

ADOQuery1.Open;



Sgrid.RowCount := ADOQuery1.RecordCount + 1;



for i := 1 to ADOQuery1.RecordCount do

begin

Sgrid.Cells[0,i] := ADOQuery1.FieldByName('name').AsString;

Sgrid.Cells[1,i] := ADOQuery1.FieldByName('birth').AsString;

Sgrid.Cells[2,i] := ADOQuery1.FieldByName('address').AsString;

Sgrid.Cells[3,i] := ADOQuery1.FieldByName('phone').AsString;

ADOQuery1.Next;

end;

ADOQuery1.Recordset.Close;

ADOQuery1.Close;

end;



-----------------------------------------------------------------

procedure TForm1.db_access(sql : string);

begin

try

ADOCon.BeginTrans;



ClearGrid;



ADOQuery1.sql.Clear;

ADOQuery1.sql.Add(sql);

ADOQuery1.ExecSQL;



ADOCon.CommitTrans;

except

ADOCon.RollbackTrans;

showmessage('데이터 베이스 접근에 실패 하였습니다.');

end;

db_refresh;

end;



위와같이 작성하였습니다.

ADOConnection과 ADOQuery를 사용하였고.

BDE에서 사용하던것을 그대로 ADO로 옮겨서 사용 하였습니다.

BDE에서는 아무런 문제도 나지 않는데 ADO에서 db_access를 실행하면

자꾸 에러가 납니다. 도와 주십시오.

db_refresh할때는 전혀 에러가 안나는데 ADOQuery1.ExecSQL 에서

에러가 납니다.

1  COMMENTS
  • Profile
    방문현 2001.07.06 02:52
    김규한 wrote:

    > procedure TForm1.db_refresh;

    > var

    > i : integer;

    > begin

    > ClearGrid;

    > ADOQuery1.sql.Clear;

    > ADOQuery1.sql.Add(sql_main);

    > ADOQuery1.Open;

    >

    > Sgrid.RowCount := ADOQuery1.RecordCount + 1;

    >

    > for i := 1 to ADOQuery1.RecordCount do

    > begin

    > Sgrid.Cells[0,i] := ADOQuery1.FieldByName('name').AsString;

    > Sgrid.Cells[1,i] := ADOQuery1.FieldByName('birth').AsString;

    > Sgrid.Cells[2,i] := ADOQuery1.FieldByName('address').AsString;

    > Sgrid.Cells[3,i] := ADOQuery1.FieldByName('phone').AsString;

    > ADOQuery1.Next;

    > end;

    > ADOQuery1.Recordset.Close;

    > ADOQuery1.Close;

    > end;

    >

    > -----------------------------------------------------------------

    > procedure TForm1.db_access(sql : string);

    > begin

    > try

    > ADOCon.BeginTrans;

    >

    > ClearGrid;

    > //여기서 먼저 AdoQuery1.Close; 나 Active:=false로 먼저 쿼리를 닫아야

    //새 쿼리를 받겠지요

    > ADOQuery1.sql.Clear;

    > ADOQuery1.sql.Add(sql);

    > ADOQuery1.ExecSQL;

    >

    > ADOCon.CommitTrans;

    > except

    > ADOCon.RollbackTrans;

    > showmessage('데이터 베이스 접근에 실패 하였습니다.');

    > end;

    > db_refresh;

    > end;

    >

    > 위와같이 작성하였습니다.

    > ADOConnection과 ADOQuery를 사용하였고.

    > BDE에서 사용하던것을 그대로 ADO로 옮겨서 사용 하였습니다.

    > BDE에서는 아무런 문제도 나지 않는데 ADO에서 db_access를 실행하면

    > 자꾸 에러가 납니다. 도와 주십시오.

    > db_refresh할때는 전혀 에러가 안나는데 ADOQuery1.ExecSQL 에서

    > 에러가 납니다.