sql SERVER7.0的缺省值在D5中的处理。(200分)

  • 主题发起人 主题发起人 mech
  • 开始时间 开始时间
M

mech

Unregistered / Unconfirmed
GUEST, unregistred user!
SQL SERVER7。0中表的定义为
CREATE TABLE TEST(
NO CHAR(8)NOT NULL,
NAME CHAR(8)NOT NULL DEFAULT SPACE(0))
我希望在DELPHI中如果没有输入NAME的值,后端
自动设为非NULL,即SPACE(0),可是,
如果TQUERY中TFIELD没有NAME字段,是可以的,但如
果有NAME,则在APPLYUPDATES时,总是出错,告诉我
不能用NULL值更新NAME。我只有在TQUERY的BEFOREPOST
前给NAME先赋空值,才能通过。真烦。
是否可以直接设置?
(注:我已经试过改NAME的AUTOGENERATEVALUS为TRUE,
TQUERY的AUTOREFRESH为TRUE,好象不行)


 
如果能在后端解决,同样给分。
 
就在TQUERY中的INSERT语句中把NAME付为空不是一样很简单吗?
 
试试在Tquery的Beforepost中将Query1.FieldByName('NAME').Required:=False;
 
沈少侠:按您说的试了,也不行。
 
在sql server 的enterprise manager中设吧! 我用的好像没有问题。。
 
在ENTERPRISE MANAGER中怎样设,请告知。
 
我认为:NOT NULL DEFAULT SPACE(0)本身就矛盾,
既然不能非空而默认值又为空,不如设为
NOT NULL DEFAULT ' '
 
设为NOT NULL DEFAULT ' ',结果还是一样,
在SQL中,NULL和SPACE(0)是不一样的。
问题的关键是:如果NAME未改变,应不更新,
或者以DEFAULT更新。
 
这个问题对IDENTITY字段同样存在。
如果设QUERY的REQUIRELIFE为TRUE,
CACHEDUPDATES为FALSE,就可以,
但这总是不对味。
 
多人接受答案了。
 
后退
顶部