分少不好意思,高手请进(关于数据类型的问题)(15分)

X

x7421

Unregistered / Unconfirmed
GUEST, unregistred user!
问题1:怎么样给一个新增的字段加上默认值呀?
query1.SQL.Add('ALTER TABLE 考试表 ADD COLUMN '+edit1.text+'
varchar(9) default('678')');
这种方法不行啊,编不过去呀,去掉678的隐号能编过去,但是执行不了。
我用的parodox表,
我想让一个新的字段值为0,怎么做?还有就是怎么样在sql语句中设定小数点的位数?

问题2:我用bde做的一个计算模块,改用ado就只能算出整数了不能算出小数为什么?
var
sumdata :real;
.
.
sumdata:=(sumdata/(i-3));
adotable1.FieldByName('察均分').AsFloat:=sumdata;
 
看样子分是真的太少了,可是我只有这么多了。唉
 
请高手赐教。
 
大哥帮帮忙呀,高手在哪里呀?
 
高手该上班了吧
 
》问题1:怎么样给一个新增的字段加上默认值呀?
》query1.SQL.Add('ALTER TABLE 考试表 ADD COLUMN '+edit1.text+'
》 varchar(9) default('678')');
注意:给表追加字段,新增的字段属性不能定义为“not null”,需为“null”型!
即想表中再增加字段的话,此字段会被默认为空。
这样假如你的表中有100条记录,你增加了字段叫“NEW_F”,
则在表的所有元组中的NEW_F全被设置为空值,你就有100个空的NEW_F数据值!
所以你不能在alert add 的时候用default 。

呵呵 不知道这样解释对不对? [:D] 请数据库高手指正!
 
》》我想让一个新的字段值为0,怎么做?
估计只能 update set = 0 了 [:D]

》》还有就是怎么样在sql语句中设定小数点的位数?
》》问题2:我用bde做的一个计算模块,改用ado就只能算出整数了不能算出小数为什么?
没有遇到过~

提前!
 
问题二:改为:
var
sumdata :Float;

Real类型正在慢慢地被淘汰,使用real类型将会有不少(版本兼容)问题,最好不要用。
另外ADO是MS的产品,不是Borland的,所以……
 
问题二已经解决了,我在access里重建了一次表,就好使了真是奇怪,可是第一个问题还是
没有解决呀,难道真的不能赋初值吗?delphi不能这么弱吧?提前
 
怎么样赋初值呀,请高手赐教
 
建议先在SQL EXPLORER 里调试出通过的SQL语句再写进程序.不同的数据库具体实现不太一样,
我这儿没有环境,不能帮你测试了.ALTER TABLE 好像不能定义缺省值吧?
 
不会,邦你提一下吧
 
default值只对以后新增的纪录有效,对原有的纪录无效
原有的纪录用 update xxx set yyy=0 全部设置为0
 
多人接受答案了。
 
顶部