如何获得一个access表的结构?(50分)

  • 主题发起人 主题发起人 fireboy
  • 开始时间 开始时间
F

fireboy

Unregistered / Unconfirmed
GUEST, unregistred user!
我要开发一个导入程序,需要知道ACCESS表的结构?
不知那位大侠可以帮助?
 
另外,FPW的表的结构应该如何获取,谢谢大家的帮助。
 
最直接的办法,读他的系统表。
别的方法要看你是用什么(dao,bde,ado?)访问数据库了。
 
那末它的系统表在那里呢?
我是说它的存储位置。
我应该怎样获取呢。
不胜感谢。
 
TADOConnection中有个方法gettablenames
下面的代码是D5的帮助中的一段:
procedure TForm1.Button1Click(Sender: TObject);
var
SL: TStrings;
index: Integer;
begin
SL := TStringList.Create;
try
ADOConnection1.GetTableNames(SL, False);
for index := 0 to (SL.Count - 1) do begin
Table1.Insert;
Table1.FieldByName('Name').AsString := SL[index];
ADOTable1.TableName := SL[index];
ADOTable1.Open;
Table1.FieldByName('Records').AsInteger :=ADOTable1.RecordCount;
Table1.Post;
end;
finally
SL.Free;
ADOTable1.Close;
end;
end;
 
table1.GetFieldNames( );
 
use BDE API
具体请参考BDE.HLP中DBI...函数
 
很抱歉,我想要的是具体结构.我现在可以得到数据的类型,数据的长度,但是我是要做一个
数据库的倒出程序,必须知道此数据表的建立时设定的结构,就像在oracle中可以找出数据
表的结构一样.
 
系统表名MSysAccessObjects,MSysObjects,MSysQueries,MSysRelationships等
但好像字段的定义是放在每个表里的了
你用DAO来作,这是MSDN的一个例子
Sub TableDefX()
Dim dbsNorthwind As Database
Dim tdfNew As TableDef
Dim tdfLoop As TableDef
Dim prpLoop As Property

Set dbsNorthwind = OpenDatabase("Northwind.mdb")

With dbsNorthwind
Debug.Print .TableDefs.Count & _
" TableDefs in " & .Name

' Enumerate TableDefs collection.
For Each tdfLoop In .TableDefs
Debug.Print " " & tdfLoop.Name
Next tdfLoop

With tdfNew
Debug.Print "Properties of " & .Name

' Enumerate Properties collection of new
' TableDef object, only printing properties
' with non-empty values.
For Each prpLoop In .Properties
Debug.Print " " & prpLoop.Name & " - " & _
IIf(prpLoop = "", "[empty]", prpLoop)
Next prpLoop

End With

End With

End Sub



 
多人接受答案了。
 
后退
顶部