一个关于SQL SERVER的比较傻的问题,快来拿分。(100分)

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

Jayant

Unregistered / Unconfirmed
GUEST, unregistred user!
使用SQL SERVER 7.0和DELPHI 5.0开发一个简单的程序。
在SQL中生成了一个TABLE,两个字段:
ID INT类型
NAME NCHAR(10) 类型。
当然ID是非空、主键。但是在运行程序时DBNavigator的nbRefresh按钮不能用,一旦按
下去就会出现错误,说该数据表不支持这个操作,没有被"uniquely indexed"
(定义唯一的索引)。我不明白这是为什么?请详加解释,各位大侠,请。

还有就是在设计阶段,TTable组件的IndexName属性中没有任何字段显示,这是为什么?
 
直接在AdoDataSet的索引字段填上ID,就可以了。
 
在SQL SERVER中定义字段ID的uniquely 的索引.
 
虽然 SQL的表上定义了主健,但在 Delphi 中应该在Indexname中指明索引名称,
或者在IndexField中指明索引字段。
 
直接建立索引,另外在数据提交的时候索引对应的值不能有重复的。
 
对所建立的主键在DELPHI中建立索引才可用。
 
按照各位所说,我已经试过了,成功。但是在使用Ado组件的时候,指定TableName时,其值
必须为:dbo.company.但是用TTable组件时,TableName则必须为:company。这是为什么?
而且,在Ado中可以指定IndexName属性,而在TTable组件中则不行,提示信息为:
"Table is not indexed".所以只能用IndexFieldNames属性,但是在运行时程序一启动就
会使得鼠标变成带sql的沙漏,必须把它移到窗体外,它才能变成箭头,而且,一按Refresh
就会再次出现以上情况,why???
请各位帮帮忙。
 
其实数据库中的索引字段与delphi中的indexname是两个不同的概念,没有必然的联系。
你的这个错误其实在SQL Explorer中也一样会报,你修改和insert一条record再refresh就来了。
你在delphi中自己定义试试?(在TTable的IndexDefs属性中)
 
Jayant:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
916
SUNSTONE的Delphi笔记
S
后退
顶部