时间: 2021-07-31 作者:daque
在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;interfaceuses 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.