动态创建Table中关于字段定义的问题(100分)

  • 主题发起人 主题发起人 jerrylong
  • 开始时间 开始时间
J

jerrylong

Unregistered / Unconfirmed
GUEST, unregistred user!
我在使用CreateTabel来创建Table的过程中,定义字段类型的代码如下:
with FieldDefs do begin
Clear;
with AddFieldDef do begin
Name:='商品名称';
DataType:=ftString;
Size:=50;
end;
with AddFieldDef do begin
Name:='商品价格';
DataType:=ftFloat;
Size:=10;
end;
end;
CreateTable;
end;
当只用第一个字段“商品名称”时可以成功,但加上第二个字段“商品价格”时,运行过程
中提示“字段长度不合法”,为什么?
 
with AddFieldDef do begin
Name:='商品价格';
DataType:=ftFloat;
// Size:=10; 这行去掉
end;
快给分!
 
在Access中建立该表时,用Delphi的SQL Explor检查字段“商品价格”
类型为Real,Size为7
而使用CreateTabel建立该表时,
类型为SmallInt,Size为5,且不能输入小数。
问题还没解决哦!
 
那你就:
with AddFieldDef do begin
Name:='商品价格';
DataType:=ftFloat;
Size:=7;
end;

 
更简单的是用sql命令:create table ......
来建表
 
Float类型是多长就是多长,不能改啊,
就像写Sql 你可以create table(aaa char(20),
bbb float,//你不能写bbb float(9)吧

另外前面最好加上
Table.TableType := ttttDefault
因为:If TableType is set to ttDefault, the table's file-name extension determines the table type:
 
Pipi的方法我试过了,仍然是“字段长度不合法”的错误提示。而用完颜康的
[red]create table(aaa char(20),
bbb float,//你不能写bbb float(9)吧
)[/red]

[redwith AddFieldDef do begin
Name:='商品价格';
DataType:=ftFloat;
// Size:=10; 这行去掉
end[/red]
实际上是一样的。

 
create table(aaa char(20),
bbb number(20,2)
)
或者
create table(aaa char(20),
bbb numeric(20,2)
)
看看
 
但是有谁能解释一下,为什么我定义的DataType明明是ftFloat,可却生成了Smallint的?
 
怎么没有人回答?
 
应该指定精度,或小数位数
 
你的问题是解决了没有呀。
 
没有解决!我还是没法在建表时定义浮点型的字段。
 
怎么没人回答,分少了?
 
差不多了[:D]
 
create table(aaa char(20),
bbb number(20,2)
)
在access2000中是错误的
 
后退
顶部