怎样获得数据库表的结构信息(100分)

  • 主题发起人 主题发起人 LoveDelphi
  • 开始时间 开始时间
L

LoveDelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样获得数据库表的结构信息?
例如怎样得到一个 Paradox 数据库表的字段数,字段名,字段类型
怎样在程序中改变字符串字段的长度,原来是10,现在想在程序中改
为20?
 
table.fieldscount
table.fields.name
 
使用 TTable.Fields 属性,如 wangjing2 所说,可以查出字段数、字段名等信息:
table1.fields.Name 字段名
table1.fields.DisplayName 显示名
table1.fields.DataType 字段类型
table1.fields.DataSize 内部存储所用字节数
要想改变字符串字段的长度是不可能的,只能改变它的显示宽度,要改变字段宽度
只能修改原数据表定义
 
Delphi的 Database Desktop 就可以更改表的结构,改变字段长度,增减字段

都可以,我想Delphi应该也可以实现!
 
使用dataset 的field属性
例如:得到字段名dataset.fields.fieldname;
字段数dataset.fields.count;
字段类型table1.fields.DataType
内部存储所用字节数table1.fields.DataSize
如果需要其他,请查询tfield的属性。

 
怎样在程序中改变字符串字段的长度呢?
 
用BDE API: DbiDoRestructure

看BDE该API的help,尤其是example中的

Example 3: Alter a field in a Paradox or dBASE table.
 
让我试试看 :)
 
灌!
with table1 do
begin
for i:=0 to
begin
asize := fields.DataSize;
atype := fields.DataType;
aname := Fields.Name'
end;
end;
 
请教CJ:
我遇到的问题:atype := fields.DataType;
如何将fields.DataType赋值给一个字符串?
 
使用存储过程
 
我有一个程序,可以得到您BDE联接的所有DB,DB下的所有TABLE,
TABLE下的所有字段名.
若要Email me:wumengs@sina.com.cn
>>曹炜
你试试Tstrings(fields.DataType);
我没试.
 
>>wumeng
我无法实现Tstrings(fields.DataType)
我想了很久,其实fields.DataType返回的是一个TFieldType(ftInteger,ftString....)
我想简化我的代码(30多行):
case fields.DataType of
ftInteger:x:='Integer';
ftString:x:='String';
...
end;

>>LoveDelphi
得到Table的信息(FieldName,FieldSize,DataType)总要显示出来。
FieldName,FieldSize比较简单,DataType比较繁。
有了好的解答请告诉我。
FiledSize最好在设计时考虑周全,运行时修改有什么意义呢?
 
我也赞成 Crab.......
 
后退
顶部