delphi8里在VCL.net使用Ado.net

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 shiningplus1 的 blog

在delphi.net中,vcl.net有两点蛮遗憾的:
1.不能使用ado(dbgo),不过据李维说本月的delphi8.1将会有这个组件。
2.不能使用ado.net和bdp,这将是我这片文章的主题。

    在borland的delphi交流区内,曾经看到danny说过,"在delphi.net中vcl.net可以调用winform组件,同样winform也可以调用vcl.net组件"。

    为了验证第一句话,我试了下,在vcl.net中是可以使用 .net的组件的,如可以直接uses system.data.sqlclient,并直接使用 sqlconnection类。也就是说,虽然vcl.net的组件面板中无法看到.net组件,但是所有的.net组件的类,vcl.net都可以使用! 但是,ado.net的dataset并不和vcl.net的dataset组件兼容,所以无法直接调用数据感知组件。不过,看了李维的inside vcl知道原来有一个adonetconnector组件,用了这个组件,可以使ado.net支持使用数据感知组件了。
   首先,vcl.net组件的dll在bds\2.0\bin 下有一个borland.vcl.design.adonet.dll,单击install .net component菜单,然后在窗体的.net vcl components页中把这个dll add一下,就可以看见adonetconnector组件。然后加一个dbgrid,db....,datasoure....,只要datasource.dataset:=adonetconnector1。其它的和原来的delphi一样,就可以了。我的具体代码如下,

unit unit1;

interface

uses
  windows, messages, sysutils, variants, classes, graphics, controls, forms,
  dialogs,
  system.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;

type
  tform1 = class(tform)
    button1: tbutton;
    adonetconnector1: tadonetconnector;
    datasource1: tdatasource;
    dbgrid1: tdbgrid;
    dbnavigator1: tdbnavigator;
    procedure button1click(sender: tobject);
  private
    { private declarations }
    connection:sqlconnection;
    prodataset : dataset;
    adapter : sqldataadapter;

  public
    { public declarations }
  end;

var
  form1: tform1;

implementation

{$r *.nfm}

procedure tform1.button1click(sender: tobject);
begin
  connection := sqlconnection.create(
  'data source= 192.168.76.170;'+
  'initial catalog=sfiecerp;'+
  'password=qwert;'+
  'persist security info=true;'+
  'user id=sa;'+
  'packet size=4096;'+
  'connection lifetime=0;'+
  'connection reset=false;'+
  'pooling=false;'+
  'max pool size=100;min pool size=0');
  connection.open;
  prodataset := dataset.create;
  adapter := sqldataadapter.create('select * from tproduct', connection);
  adapter.fill(prodataset, 'product');
  adonetconnector1.datatable:=prodataset.tables[0];
end;

end.

本文关键:delphi8里在VCL.net使用Ado.net
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top