TADOquery를 이용하여 PROGRAM을 짜고 있는데.
TADOquery를 이용하다보니 Transaction을 처리하는 방법을 모르겠네요.
TADOquery 자체에 Connectionstring 에서 Database를 선택하여 사용 하고요..
소스는:
TADOquery.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + ExtractFilePath(ParamStr(0)) +
'Address2.mdb;Persist Security Info=False';
TADOquery.SQL.Clear;
TADOquery.SQL.add ('Update office ');
TADOquery.SQL.add ('Set office = :N1, ');
TADOquery.SQL.add ('N_ame = :N2, ');
TADOquery.SQL.add ('tel = :N3, ');
TADOquery.SQL.add ('office_tel = :N4, ');
TADOquery.SQL.add ('hp = :N5, ');
TADOquery.SQL.add ('pp = :N6, ');
TADOquery.SQL.add ('address = :N7 ');
TADOquery.SQL.add ('Where n_ame = :N8 ');
TADOquery.Parameters.ParamValues['N1'] := Trim(edit1.text);
TADOquery.Parameters.ParamValues['N2'] := Trim(edit2.text);
TADOquery.Parameters.ParamValues['N3'] := Trim(edit3.text);
TADOquery.Parameters.ParamValues['N4'] := Trim(edit4.text);
TADOquery.Parameters.ParamValues['N5'] := Trim(edit5.text);
TADOquery.Parameters.ParamValues['N6'] := Trim(edit6.text);
TADOquery.Parameters.ParamValues['N7'] := Trim(edit7.text);
TADOquery.Parameters.ParamValues['N8'] := Trim(combo.text);
TADOquery.ExecSQL;
TADOquery.close;
동작에는 이상이 없습니다.
하지만 이게 맞는 방법인지는 모르겠군요..
개인적인 생각으로 Tdatabase 와 Tquery가 같이 사용 되어야 할것 같은데..
이 두 컨트롤을 어떻게 연결 하는지요..
방법이 틀리다면 어느 부분이 틀렸는지 말씀해 주세요..
델파이 입문 xx일 완전초짜..
PS:
VB에서는 Database 와 Recordset을 정의하여
Database 에서 DB를 연결하고 Transaction 처리를 하는데
주로 Recordset은 Table을 Select하고요..
Database.BeginTrans
Database.Execute Recordset, Database
Database.CommitTrans
//Database.Rollback
이런식의 처리는 어찌 하나요..?
델파이세상(http://www.freechal.com/delphiworld)에 최석기입니다..
ADO를 사용해서 트랜잭션 처리를 하기 위해서는 TAdoConnection을 사용하시면 됩니다..
TAdoQuery에 Connection 프로퍼티를 AdoConnection으로 설정하시고 AdoConnection에 아래 코딩으로 해놓으신(ConnectionString) 셋팅을 해주세요..
그리고 트랜잭션 처리는 다음과 같이..
try
AdoConnection1.BeginTrans;
AdoQuery1.Close;
AdoQuery1.SQL.Text := 'INSERT INTO Test VALUES(......)';
AdoQuery1.ExecSQL;
AdoConnection.CommitTrans;
except
AdoConnection.RollBackTrans;
end;
초보 wrote:
> TADOquery를 이용하여 PROGRAM을 짜고 있는데.
> TADOquery를 이용하다보니 Transaction을 처리하는 방법을 모르겠네요.
> TADOquery 자체에 Connectionstring 에서 Database를 선택하여 사용 하고요..
> 소스는:
> TADOquery.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
> 'Data Source=' + ExtractFilePath(ParamStr(0)) +
> 'Address2.mdb;Persist Security Info=False';
>
> TADOquery.SQL.Clear;
> TADOquery.SQL.add ('Update office ');
> TADOquery.SQL.add ('Set office = :N1, ');
> TADOquery.SQL.add ('N_ame = :N2, ');
> TADOquery.SQL.add ('tel = :N3, ');
> TADOquery.SQL.add ('office_tel = :N4, ');
> TADOquery.SQL.add ('hp = :N5, ');
> TADOquery.SQL.add ('pp = :N6, ');
> TADOquery.SQL.add ('address = :N7 ');
> TADOquery.SQL.add ('Where n_ame = :N8 ');
> TADOquery.Parameters.ParamValues['N1'] := Trim(edit1.text);
> TADOquery.Parameters.ParamValues['N2'] := Trim(edit2.text);
> TADOquery.Parameters.ParamValues['N3'] := Trim(edit3.text);
> TADOquery.Parameters.ParamValues['N4'] := Trim(edit4.text);
> TADOquery.Parameters.ParamValues['N5'] := Trim(edit5.text);
> TADOquery.Parameters.ParamValues['N6'] := Trim(edit6.text);
> TADOquery.Parameters.ParamValues['N7'] := Trim(edit7.text);
> TADOquery.Parameters.ParamValues['N8'] := Trim(combo.text);
> TADOquery.ExecSQL;
> TADOquery.close;
>
> 동작에는 이상이 없습니다.
>
> 하지만 이게 맞는 방법인지는 모르겠군요..
> 개인적인 생각으로 Tdatabase 와 Tquery가 같이 사용 되어야 할것 같은데..
> 이 두 컨트롤을 어떻게 연결 하는지요..
> 방법이 틀리다면 어느 부분이 틀렸는지 말씀해 주세요..
>
> 델파이 입문 xx일 완전초짜..
>
> PS:
> VB에서는 Database 와 Recordset을 정의하여
> Database 에서 DB를 연결하고 Transaction 처리를 하는데
>
> 주로 Recordset은 Table을 Select하고요..
> Database.BeginTrans
> Database.Execute Recordset, Database
> Database.CommitTrans
> //Database.Rollback
>
> 이런식의 처리는 어찌 하나요..?