插入记录时,自增字段的处理,300分,请您加入讨论!!!!!(300分)

  • 主题发起人 主题发起人 小松树
  • 开始时间 开始时间

小松树

Unregistered / Unconfirmed
GUEST, unregistred user!
前台DELPHI5。0,后台SQL SERVER7。0;
数据表中某记录ID,类型INT ,INDENTITY选中,SEED,INCREMENT为1;
在前台中,采用语句table1.insert; 表中除ID外,其余字段用如下语句赋值
table1field[1].value:='';table1.post;
但程序报错,说ID 为必添项;
在TABLE1中字段ID的AUTOGENERATEVALUE设为ARDEFAULT;TABLE1。AUTOREFRESH为TRUE
请较!!!!!!
 
把table.insert换成table.append试一下.insert时autoID无法自动生成所以报错。append
时autoID将自动生成所以是可行的
 
建议不要这样添加记录:使用 TQuery + Insert
Insert Into Table FieldList Values Valuelist

Query.ExecSQL
 
agree With BaKuBaKu!
 
DAOTable1.AppendRecord([nil,Newfile.Strings[0],Newfile.Strings[1],Newfile.Strings[2],Newfile.Strings[3],Newfile.Strings[4],Newfile.Strings[5]]);
第一个NIL就是跳过ID自增,后边分别对应添加字段数据
 
你可以采用缓冲方式写入。
 
象上面几位所说的,都试试把,反正我用append没问题
 
1、将TABLE1中字段ID的AutoGenerateValue设为arAutoInc 看看
2、如果不行,你随便赋给id字段一个值就可以了,反正服务器会正确处理的了。
 
PIPI说的对,随便给个值就行了。或者,把该字段的 Required 属性改为 false,服务器
会自动处理的
 
将table或query的field editor中的自增字段去掉,然后用Append应该不会有问题
或者用
insert into table_name(columns)
values[v1,v2],自增字段随便附一个值即可。
 
另类:
建个视图,去掉ID字段,不就行了。用视图好处多多,建议多用视图。
 
CREATE TABLE [dbo].[test] (
[t_id] [int] IDENTITY (1, 1) NOT NULL ,
[test] [char] (10) NULL
) ON [PRIMARY]
GO
 
建议用adodataset,可以很方便的实现您的目的,而且,我用起来不会出错。并且它的记录
集还有各种方式,比较方便。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
549
import
I
I
回复
0
查看
629
import
I
后退
顶部