创建数据库时,如何指定小数位数?(50分)

  • 主题发起人 主题发起人 gefei
  • 开始时间 开始时间
G

gefei

Unregistered / Unconfirmed
GUEST, unregistred user!
是不是要用BDE的DbiCreatTable?
 
这个问题同数据库有关, 例如, sql server 中在
建库时用numeric(10, 2)定义二位小数
 
是要动态创建吗
 
正如Jincheal所说, 要看你建立什么类型的库. Paradox, Access等都是通过字段类
型定义, 不需要指定小数位. 但是Dbase, Foxpro的.DBF的数值型纪录就需要有小数
位. 这根数据库的存储方式有关, .DBF文件的数值型字段实际上在文件中都是字符串
 
是我不好,我没讲清楚,在程序中创建,DBASE库。
哪位大虾指点一二!
 
例子:

放一个Tquery控件,

Query1.SQL.text := 'Create Table "C:/TTT/Tb1.dbf" ';
Query1.SQL.Add('(ID CHAR(8), Price NUMERIC(6,2))');
Query1.ExecSQL;

结果:
在C:/TTT/上建立了一个Tb1.dbf;
 
SeaSky:不行啊!虽然文件可以创建,CHAR字段正确,但浮点字段不正确,你建一个再
用database desktop 打开看看。

各位大虾,帮兄弟一把吧……

前几天都上不了站,本站的速度太、太、太慢了,还有没有其他镜象站点?
 
没办法!
本地表都是这个德行!天生的,没治!你看Database Desktop里也没有指定小数位的地方嘛!因为根本不支持。
如果你一定要指定小数位的话,只好改用SQL Server之类的大型数据库了,如果你不想这么干,也可以对付过去,方法是在TDataSet.BeforePost事件里面检查各个字段值,然后自己把它改掉,真实太麻烦了!!!
 
怎么,这个问题没有人回答吗?
李颖兄说得不对,在Database Desktop中是可以指定小数位的?
 
数据库类型不同,在database desktop中是否可以指定小数位也不同
但可以在程序中通过mask来设定
 
谁有好办法请通知我一声,
我要创建的是SYBASE表
 
Seasky的方法是对的
可用Database Explorer中的sql测试
Create Table "Test.dbf" (ID NUMERIC(4,0),Price NUMERIC(5,2))
一切OK
 
gefei:
我按你的方法试了一下, 没有问题嘛. 你需要注意的
问题是 (6,2) 表示连小数点代小数位数共计长度为6 ,
如:
赋值 存储值
12.345 -> 12.35
123.456 -> 123.46
1234.56 -> 1234.6
12345.67 -> 12346.
123456.7 -> 123457
总之, DBF 是用字符方式存储, 整个字段长度为6.
 
多人接受答案了。
 
后退
顶部