如何读取access数据库中某个字段的类型
问个问题
我想从一个access表中读出字段的类型和长度 应该怎么做
?
我的想法是用txlFieldList:=adoconnection1.DataSets[0].Fields[0].DataType;
然后赋值给一个数组abc[0]:=txlFieldList;
可是提示错误为[Error] Unit1.pas(59): Record, object or class type required
有谁能指点下么?
[解决办法]
这样啊,实际上你确实没有任何数据集
你要动态建一个TADOTAble 把 TableName指向 枚举中的表名中的一个
用一个Loop一个个 把Table都打开,把字段名与属性都取出来
或放一个Table组件
在Loop中变换表名 Open 取属性 Close..下一个,,就行了
[解决办法]
现在的问题是adoconnection1.DataSets[0].Fields[0].DataType; 这一句出现错误 错误是下标越界
-----------------------------
问题起因:
你的问题就是因为 adoconnection1.DataSetCount=0,导致这个问题的原因是你的 Button1Click 里头运行到txlFieldList:=adoconnection1.DataSets[0].Fields[0].DataType; 语句时,adoconnection1关联DataSet没有一个打开过。
解决办法:
可以运行一个查询,即可得到你要获取表的相关字段信息。
...
adoconnection1.GetFieldNames(tab,txlTableList);
adoquery1.SQL.Clear;
adoquery1.SQL.Add( 'select * from '+tab+' where 1<0');
adoquery1.Open;
txlFieldList:=adoconnection1.DataSets[0].Fields[0].DataType;
...