运行提示错误:
当IDENTITY_INSERT 设置为OFF时,不能向表'BM_info'中的标识列插入显示值。delphi中的代码
、、、、、、、、、、、、、、、、、、、、、、
with ADOStoredProc1 do
begin
ProcedureName:='insert_BM_info;1';
parameters.refresh;
//if Prepared  then Prepared:=True;
Parameters.ParamByName('@id').Value:='12';
Parameters.ParamByName('@sname').Value:=Trim(Edit1.Text);
open;
end;
、、、、、、、、、、、、、、、、、、、、、、
SQL SERVER2000中代码
CREATE PROCEDURE [insert_BM_info]
(@id  [int],
 @sname  [char](50))AS INSERT INTO [ZYS-SGJT-BGYPM].[dbo].[BM_info] 
 ( [id],
 [sname]) 
 
VALUES 
( @id,
 @sname)
GO

解决方案 »

  1.   

    set IDENTITY_INSERT  [ZYS-SGJT-BGYPM].[dbo].[BM_info]  on
    insert into...
      

  2.   

    delphi中的代码
    、、、、、、、、、、、、、、、、、、、、、、
    with ADOStoredProc1 do
    begin
    ProcedureName:='insert_BM_info;1';
    parameters.refresh;
    //if Prepared  then Prepared:=True;
    Parameters.ParamByName('@sname').Value:=Trim(Edit1.Text);
     ExecProc;    //这里不是用OPEN(因为无返回数据集)
    end;
    、、、、、、、、、、、、、、、、、、、、、、
    SQL SERVER2000中代码
    CREATE PROCEDURE [insert_BM_info]
    ( @sname  [char](50))AS INSERT INTO [ZYS-SGJT-BGYPM].[dbo].[BM_info] 
     ([sname]) 
     
    VALUES 
    ( @sname)
    GO
      

  3.   

    CREATE PROCEDURE [insert_BM_info]
    ( @sname  [char](50))AS INSERT INTO [ZYS-SGJT-BGYPM].[dbo].[BM_info] 
     ([sname]) 
     
    VALUES 
    ( @sname)
    GO中加一个IF (select sname from BM_info where sname=@sname)这样的语句用来判断添加的记录重不重复,有重不就不添加了,取消,不重复就添加,怎么写里面呢,