vfp如何列出Access数据库结构
请各位高手指导vfp如何列出Access数据库结构的方法
2016-11-13 08:59
2016-11-13 19:53
2016-11-14 07:10
2016-11-15 21:24
程序代码:* 连接Access并尝试读取指定表的字段属性。
local rst, con, fld, i,ii
local lcMDBConc As String, bmk As String && 连接字串,源文件名
LOCAL cTable as String
cTable="cwgs" && 表的名字。
bmk = "D:\产销存\档案.mdb"
lcMDBConc = "Provider=Microsoft.jet.oledb.4.0;Data source="
con = CreateObject("adodb.connection")
rst = CreateObject("adodb.RecordSet")
con.Open( lcMDBConc + bmk)
rst.open ("select top 1 * from " + cTable + " where 1=1 " ,con ,1,1,1)
STORE 0 TO i,ii
CREATE CURSOR struDBF (field_name c(200) ,Vfp_type c (1) ,field_len N (4) ,field_dig N (1),allowNull l ,fType i ,FDescript c(30))
* 字段含义:字段名称、对应的VFP类型、字段长度、小数位长度、是否允许NULL、Ado字段类型、Ado字段类型描述
For Each fld In rst.Fields
INSERT INTO struDBF (field_name ,field_LEN ,fType ,FDescript ) ;
VALUES ( fld.NAME , fld.DefinedSize ,fld.TYPE ,transfieldtype(fld.TYPE) ) && Type是一个数值,
NEXT
UPDATE STRUDBF SET STRUDBF.Vfp_type = "L" WHERE STRUDBF.fType=11 && 逻辑型
UPDATE STRUDBF SET STRUDBF.Vfp_type = "T" WHERE STRUDBF.fType=7
* [color=#0000FF]UPDATE STRUDBF SET STRUDBF.Vfp_type = "D" WHERE STRUDBF.fType=7 && D、T 都是7,T优先[/color]
UPDATE STRUDBF SET STRUDBF.Vfp_type = "Y" WHERE STRUDBF.fType=6 && Y 货币型
UPDATE STRUDBF SET STRUDBF.Vfp_type = "N" WHERE STRUDBF.fType=5
UPDATE STRUDBF SET STRUDBF.Vfp_type = "V" WHERE STRUDBF.fType=72 && GUID
UPDATE STRUDBF SET STRUDBF.Vfp_type = "V" WHERE STRUDBF.fType=203 && LongVarWChar
UPDATE STRUDBF SET STRUDBF.Vfp_type = "I" WHERE STRUDBF.fType=19 && UnsignedInt
UPDATE STRUDBF SET STRUDBF.Vfp_type = "V" WHERE STRUDBF.fType=202 OR EMPTY(STRUDBF.Vfp_type) && 不清楚的类型,一律用V型,这样兼容性最好。
rst.Close
con.Close
MESSAGEBOX("访问Access,并尝试读取指定表的字段属性,完毕。")
[此贴子已经被作者于2016-11-16 16:58编辑过]
2016-11-16 16:56
2016-11-16 21:08
2016-11-17 10:21
2016-11-17 20:31
2016-11-18 11:43
2016-11-18 11:47