delphi.net에서 VCL.net에는 두 가지 아쉬운 점이 있습니다.
1. ADO(dbGo)는 사용할 수 없지만 Levi에 따르면 이 구성 요소는 향후 사용할 수 있을 것이라고 합니다.
2. 이 글의 주제인 ADO.net과 BDP는 사용할 수 없습니다.
Borland의 델파이 통신 영역에서 Danny가 "delphi.net에서 VCL.net은 Winform 구성 요소를 호출할 수 있고 Winform은 VCL.net 구성 요소도 호출할 수 있습니다."라고 말하는 것을 본 적이 있습니다.
첫 번째 문장을 확인하기 위해 Vcl.net에서 .Net 구성 요소를 사용할 수 있습니다. 예를 들어 System.Data.SqlClient를 직접 사용하고 SqlConnection 클래스를 직접 사용할 수 있습니다. 즉, VCL.net의 구성 요소 패널에서는 .net 구성 요소를 볼 수 없지만 모든 .net 구성 요소 클래스는 VCL.net에서 사용할 수 있습니다! 그러나 Ado.net의 데이터 세트는 VCl.net의 Dataset 구성 요소와 호환되지 않으므로 데이터 인식 구성 요소를 직접 호출할 수 없습니다. 그러나 Levi의 Inside Vcl을 읽은 후 ADONETConnector 구성 요소가 있다는 것을 알게 되었습니다. 이 구성 요소를 사용하면 Ado.net이 데이터 인식 구성 요소의 사용을 지원할 수 있습니다.
먼저, VCL.net 구성 요소의 dll에는 BDS/2.0/Bin 아래에 Borland.Vcl.Design.AdoNet.dll이 있습니다. .net 구성 요소 설치 메뉴를 클릭한 다음 이 dll을 .net vcl 구성 요소 페이지에 추가합니다. 클릭하면 ADONETConnector 구성 요소를 볼 수 있습니다. 그런 다음 datasource.dataset:=ADONETConnector1인 경우 Dbgrid, db...., datasoure....를 추가합니다. 나머지는 원래 델파이와 동일합니다. BDP에도 동일한 수정 방법이 효과적입니다.
내 특정 코드는 다음과 같습니다.
단위 Unit1;
인터페이스
용도
Windows, 메시지, SysUtils, 변형, 클래스, 그래픽, 컨트롤, 양식,
대화상자,
시스템.데이터.Sql클라이언트,
시스템.데이터, 시스템.컴포넌트모델, 볼랜드.Vcl.StdCtrls,
볼랜드.Vcl.ExtCtrls, 볼랜드.Vcl.DBCtrls, 볼랜드.Vcl.Grids,
볼랜드.Vcl.DBGrids, 볼랜드.Vcl.Db, 볼랜드.Vcl.ADONETDb;
유형
TForm1 = 클래스(TForm)
버튼1: T버튼;
ADONETConnector1: TADONET커넥터;
데이터소스1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
PROcedure Button1Click(Sender: TObject);
사적인
{비공개 선언}
연결:SqlConnection;
ProDataSet : 데이터세트;
어댑터: SqlDataAdapter;
공공의
{공개 선언}
끝;
var
Form1: TForm1;
구현
{$R *.nfm}
절차 TForm1.Button1Click(Sender: TObject);
시작하다
연결 := SqlConnection.Create('...');
연결.열기;
ProDataSet := DataSet.Create;
Adapter := SqlDataAdapter.Create('제품에서 * 선택', Connection);
Adapter.Fill(ProDataSet, '제품');
ADONETConnector1.DataTable:=ProDataSet.Tables[0];
끝;
끝.