大家好,
因为平时写程序主要是使用Access数据库,而偏偏Access属于那种谁打开了就可以乱改的数据库,所以就打算写一个分析、读取Access数据库结构的小程序。包括:1、读取数据库内所有的表格(已经实现,用 Openschemas )
2、读取每个数据库表内的字段和类型 (已经实现,就是用 Field 的 Name 和 Type 属性)
3、读取每个表格的主键(已经实现,用 ADOX )4、读取每个字段是否属于“必填字段”和“允许有空值”(无法实现)
5、读取数据库内表间的关系,以及同步(同步删除、同步更新 等等)(这个也无法实现)然后把这些信息保存到一个文本文件里面,当数据库程序启动的时候,就读取该文件内数据库的信息,然后和正要打开的数据库进行比对,比对无误之后才正式启动程序。不知道这里的大侠是否知道如何解决 4 和 5 的这两个问题呢?小弟在这里先谢过各位了啊~
因为平时写程序主要是使用Access数据库,而偏偏Access属于那种谁打开了就可以乱改的数据库,所以就打算写一个分析、读取Access数据库结构的小程序。包括:1、读取数据库内所有的表格(已经实现,用 Openschemas )
2、读取每个数据库表内的字段和类型 (已经实现,就是用 Field 的 Name 和 Type 属性)
3、读取每个表格的主键(已经实现,用 ADOX )4、读取每个字段是否属于“必填字段”和“允许有空值”(无法实现)
5、读取数据库内表间的关系,以及同步(同步删除、同步更新 等等)(这个也无法实现)然后把这些信息保存到一个文本文件里面,当数据库程序启动的时候,就读取该文件内数据库的信息,然后和正要打开的数据库进行比对,比对无误之后才正式启动程序。不知道这里的大侠是否知道如何解决 4 和 5 的这两个问题呢?小弟在这里先谢过各位了啊~
解决方案 »
- 关于FarPoint Spread 7单元格内中英文混排时自动换行不均的问题
- 怎么解决这个问题?当最大化或最小化窗体不能移动或调整!
- 在Excel中如何判断光标的位置
- 如何结束进程?????
- 非一般高手能解决的超级难题,已困扰了我们公司的程序员近一个月!
- 一个VB小问题,可真是急死我了
- 关于数据库加密(急用)
- 用VB数据管理器建的ACCESS,怎么在WINDOWS下打不开啊 。反过来也是一样.咱们搞的啊?
- 求救:如何将SQL坏了的数据库恢复!
- 如何取得一个表中的一列的字符串的长度请不要用LEN????紧急求援???
- 在datareport中如何设置子报表?
- 关于一个Win2K下的关机问题(急)
对于 Field 对象,Attributes 属性可以是一个或多个 FieldAttributeEnum 值的和。
请参考 FieldAttributeEnum 的帮助。第五个问题:
可以参考 ADOX 的 KeyTypeEnum,估计主要是外键的判断吧。
Dim rel As Relation
Dim fld As Field
For Each rel In dbs.Relations
For Each fld In rel.Fields
rel.Table'主标名
fld.Name'主标字段
rel.ForeignTable'子表名
fld.ForeignName'子表字段
rel.Attributes'关系
dbRelationDontEnforce
dbRelationUpdateCascade
dbRelationUpdateCascade + dbRelationDeleteCascade
Next
Next