本人如下程序段,想通过从文框中取得输入的编码,确认后,进入代码表中查询是否有此编码,有则修改此条记录,无则添加此条记录。程序片断如下:
if (edit1.Text ='') or (edit2.Text='') then
      begin
        messagedlg('类别编码及名称不能为空',mtconfirmation,[mbOK],0);
        edit1.SetFocus;
      end;
    dm_name:=edit1.Text;
    with Data_use do   //数据模块
其中:edit1对应产品编码
     edit2对应产品名称
望您赐教,谢谢!
利用数据库存储过程进行编程,但我不知如何操作?能否告之具体点,
你能帮助我写出在SQL SERVER端的数据存储过程吗?
代码表名:CPFMBM
字段名1:CPBM             C   3
字段名2:CPMC       C   30

解决方案 »

  1.   

    CREATE proc proc_name1
    @p1 varchar(50);
    @p2 varchar(50)
    as
    selcet * from cpfmbm where cpbm=@p1 and cpmc=@p2
      

  2.   

    对不起,笔误
    CREATE proc proc_name1
    @p1 varchar(50),--此处为“逗号“
    @p2 varchar(50)
    as
    selcet * from cpfmbm where cpbm=@p1 and cpmc=@p2
      

  3.   

    问题是你这个存储过程不能进行对数据库操作啊,比如,如果库有此编码则UP此条记录,否则,IN此条记录?如何在过程中进行?
      

  4.   

    前台:
    with Query1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('Exec('+''''+Edit1.Text+''''+','+''''+Edit2.Text+'''');
      ExecSQL
      Close;
    End;后台:
    CREATE PROCEDURE Bes_Proc_Chn_CPFMBM 
       @Single_No varchar(50)
       @Values   varchar(50)
    AS   IF EXITS( Select * from CPFMBM where CPBM=@Single_No)
             Update CPFMBM set CPMC=@Values
      else 
            Insert into CPFMBM(CPBM,CPMC) values(@Single_No , @Values)
    /*
        在使用时请注意@Single_No 与@Values变量的定义,必须
        与CPBM与CPMC类型相同,这里假设为Varchar类型
    */
      

  5.   

    后台:
    CREATE PROCEDURE Bes_Proc_Chn_CPFMBM 
       @Single_No varchar(50)
       @Values   varchar(50)
    AS   IF EXITS( Select * from CPFMBM where CPBM=@Single_No)
             Update CPFMBM set CPMC=@Values where CPBM=@Single_No
                         --不好意思忘了条件
      else 
            Insert into CPFMBM(CPBM,CPMC) values(@Single_No , @Values)
    /*
        在使用时请注意@Single_No 与@Values变量的定义,必须
        与CPBM与CPMC类型相同,这里假设为Varchar类型
    */