[学习笔记]Delphi之通过ADOX操作access数据库
作者:webfly 日期:2005-04-06
作者:扬帆 网站: Email:888fly@163.com 如转载请保留此版权信息
Delphi7支持ADO(MicrosoftActiveXDataObjects)的支持,使得Delphi程序员可以彻底摆脱BDE,缩小软件分发的体积。但是Delphi的ADO组件不支持ActiveXDataObjectsExtensionsforDataDefinitionLanguageandSecurity(ADOX、ADO的扩展,用于创建、修改和删除模式对象,如表格和过程;操作安全对象,可用于维护用户和组,以及授予和撤消对象的权限)和JetandReplicationObjects(JRO,用于对Jet数据库引擎添加压缩、同步复制等特征),这些功能在开发Access数据库往往比较重要。不过由于ADOX、JRO乃至ADO都是基于COM(ComponentObjectModel,组件对象模型)的,可以调用COM来来实现这些功能。
delphi7中的使用方法:
方法一:
要求:开发平台或客户端需要安装MDAC2.1数据库引擎,你可以从微软公司http://www.microsoft.com/data下载,也可以在安装IE5.0中选择定制安装“动态数据绑定”选项。
在DelphiIDE中选择菜单ProjectImportTypeLibrary,出现ImportTypeLibrary对话框,选择“MicrosoftADOExt.2.xforDDLandSecurity”,将ClassName中TTable改为TADOXTable(因为TTable组件在Delphi中已经存在并注册);选择“MicrosofJetandReplicationObject2.xLibrary”。然后单击“Install”安装,便在Delphi的Imports目录下生成ADOX_TLB.pas和JRO_TLB.pas两个文件。在Unit文件的Uses中加入ComObj、ADOX_TLB、JRO_TLB,就可以通过COM操作ADOX和JRO对象了。
这样在组件面板的activex中找到这些组件,放一个Catalog1到表单上,然后加个按钮,加入单击动作
procedureTForm1.Button1Click(Sender:TObject);
begin
Catalog1.Create1(’Provider=Microsoft.Jet.OLEDB.4.0;DataSource=c:/new.mdb’);
end;
这样,我们简单的就实现了在c:/下建立一个新的access数据库new.mdb,你可以编译一下看看效果如何
方法二::通过OLE方式创建
在引用部分加入:
uses ComObj;
实现部分:
procedure TFormOffice.BitBtn1Click(Sender: TObject);
var
CreateAccess:OleVariant;
begin
CreateAccess:=CreateOleObject('ADOX.Catalog');
CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/Aceco.mdb');
end;
===============================================================================================================
创建表的方法(ole方法):
procedure TForm1.Button3Click(Sender: TObject);
var
ConnectAccess:OleVariant;
CreateMyTable:OleVariant;
begin
ConnectAccess:=CreateOleObject('ADOX.Catalog');
ConnectAccess.ActiveConnection:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFileDir(Application.Exename)+'/data/'+Edit2.Text;
CreateMyTable:=CreateOleObject('ADOX.Table');
CreateMyTable.Name:=Edit3.Text;
CreateMyTable.Columns.Append(Edit4.Text,adInteger);
CreateMyTable.Columns.Append(Edit5.Text,adVarWChar,50);
ConnectAccess.Tables.Append(CreateMyTable);
end;
以下是字段常量参数表
常量 | 说明 |
adTinyInt | 精确的数字值,精度为小数点后 3 位。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 |
AdSmallInt | 精确数字值,精度为小数点后 5 位。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 |
AdInteger | 精确数字值,精度为小数点后 10 位。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 |
AdBigInt | 精确数字值,精度为小数点后 19 位。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 |
AdUnsignedTinyInt | 无符号的 adTinyInt。 |
AdUnsignedSmallInt | 无符号的 adSmallInt。 |
AdUnsignedInt | 无符号的 adInteger。 |
AdUnsignedBigInt | 无符号的 adBigInt。 |
AdSingle | 单精度浮点数。 |
AdDouble | 双精度浮点数。 |
AdCurrency | 货币类型。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 |
AdDecimal | 变体型十进制类型。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 |
AdNumeric | 数值类型。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 |
AdBoolean | 变体布尔类型。0 为假而 ~0 为真。 |
AdUserDefined | 用户定义的变量长度数据类型。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 |
AdVariant | 自动变体型。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 |
AdGuid | 全域唯一标识符。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 |
AdDate | 自动日期。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 |
AdDBDate | 数据库日期数据结构。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 |
AdDBTime | 数据库时间数据结构。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 |
AdDBTimestamp | 数据库时间戳结构。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 |
AdBSTR | BSTR 的指针。关于该类型的详细资料,请参阅“OLE DB 程序员参考”。 |
AdChar | 定长字符串。 |
AdVarChar | 变长字符串。 |
AdLongVarChar | 长变长字符串。 |
AdWChar | 宽定长字符串。 |
AdVarWChar | 宽变长字符串。 |
AdLongVarWChar | 长、宽变长字符串。 |
AdBinary | 定长二进制数据。 |
AdVarBinary | 变长二进制数据。 |
AdLongVarBinary | 长变长二进制数据。 |
说明
默认值是 adVarWChar。
在 Column 对象追加到集合或到另一个对象之前,该属性是可读/写的,而在追加之后是只读的。