En delphi.net, VCL.net se arrepiente de dos cosas:
1. No se puede utilizar ADO (dbGo), pero según Levi, este componente estará disponible en el futuro.
2. No se pueden utilizar ADO.net ni BDP, que será el tema de este artículo.
En el área de comunicación de Delphi de Borland, una vez vi a Danny decir: "En delphi.net, VCL.net puede llamar a componentes de Winform y Winform también puede llamar a componentes de VCL.net".
Para verificar la primera oración, lo probé. Puede usar componentes .Net en Vcl.net. Por ejemplo, puede usar System.Data.SqlClient directamente y usar directamente la clase SqlConnection. En otras palabras, aunque los componentes .net no se pueden ver en el panel de componentes de VCL.net, ¡VCl.net puede utilizar todas las clases de componentes .net! Sin embargo, el conjunto de datos de Ado.net no es compatible con el componente Dataset de VCl.net, por lo que no se puede llamar directamente al componente de datos. Sin embargo, después de leer Levi's Inside Vcl, descubrí que existe un componente ADONETConnector. Al utilizar este componente, Ado.net puede admitir el uso de componentes con reconocimiento de datos.
Primero, el dll del componente VCL.net tiene un Borland.Vcl.Design.AdoNet.dll en BDS/2.0/Bin. Haga clic en el menú Instalar componente .net y luego agregue este dll en la página de componentes .net vcl del archivo. Después de hacer clic, podrá ver el componente ADONETConnector. Luego agregue Dbgrid, db...., datasoure...., siempre que datasource.dataset:=ADONETConnector1. El resto es igual que el Delphi original, y listo. El mismo método de modificación también es eficaz para BDP.
Mi código específico es el siguiente,
unidad Unidad1;
interfaz
usos
Windows, Mensajes, SysUtils, Variantes, Clases, Gráficos, Controles, Formularios,
Diálogos,
Sistema.Data.SqlClient,
System.Data, System.ComponentModel, Borland.Vcl.StdCtrls,
Borland.Vcl.ExtCtrls, Borland.Vcl.DBCtrls, Borland.Vcl.Grids,
Borland.Vcl.DBGrids, Borland.Vcl.Db, Borland.Vcl.ADONETDb;
tipo
TForm1 = clase(TForm)
Botón1: TBotón;
Conector ADONET1: Conector TADONET;
Fuente de datos1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
Botón de procedimiento 1 clic (Remitente: TObject);
privado
{Declaraciones privadas}
Conexión: Conexión Sql;
ProDataSet: Conjunto de datos;
Adaptador: SqlDataAdapter;
público
{Declaraciones públicas}
fin;
var
Formulario1: TForm1;
implementación
{$R *.nfm}
procedimiento TForm1.Button1Click (Remitente: TObject);
comenzar
Conexión := SqlConnection.Create('...');
Conexión.Abierta;
ProDataSet := Conjunto de datos.Crear;
Adaptador := SqlDataAdapter.Create('seleccionar * del Producto', Conexión);
Adaptador.Fill(ProDataSet, 'Producto');
ADONETConnector1.DataTable:=ProDataSet.Tables[0];
fin;
fin.