我用了一个存储过程
CREATE PROCEDURE [pro_insert]
(@no  [char](3),
 @name  [char](20),
 @class  [char](20),
 @sex [char](2))AS INSERT INTO [Stu] 
 ( [S_no],
   [S_name],
   [S_class],
   [S_sex]) 
 
VALUES 
( @no,
 @name,
 @class,
 @sex)
GO
我的delphi代码为什么有误
with  clientDataset1 do
  begin
   clientDataset1.Close;
   ClientDataSet1.commandtext:='execute pro_insert :@no,:@name,:@class,:@sex';
   ClientDataSet1.FieldByName('@no').Value:=edit1.Text;
   ClientDataSet1.   clientdataset1.Execute;
  end;

解决方案 »

  1.   

    ClientDataSet1.commandtext:='execute pro_insert :@no,:@name,:@class,:@sex';
       ClientDataSet1.FieldByName('@no').Value:=edit1.Text;老婆,你的参数没传完整啊,只传了一个,但是有好几个参数呀你说老公我说得对不对啊。呵呵。
      

  2.   

    lovedll(戒情人)你说的没有错
    不过我把那几个参数添加上之后还是 提示有误‘提示 clientdataset1:field'@no'not found ’
    with  clientDataset1 do
      begin
       clientDataset1.Close;
       ClientDataSet1.commandtext:='execute pro_insert :@no,:@name,:@class,:@sex';
       ClientDataSet1.FieldByName('@no').Value:=edit1.Text;
       ClientDataSet1.   clientdataset1.Execute;
      end;
    你看是不是上面 的代码有误我将不胜感激
      

  3.   

    with  clientDataset1 do
      begin
       clientDataset1.Close;
       ClientDataSet1.commandtext:='execute pro_insert :@no,:@name,:@class,:@sex';
       //ClientDataSet1.FieldByName('@no').Value:=edit1.Text;
       ClientDataSet1.Params.ParamByName('@no').Value = edit1.text;  //改成这样试试
       ClientDataSet1.   clientdataset1.Execute;
      end;
      

  4.   

    一般我调用存储过程,参数是这样传的,我不知道你那样船对不对ClientDataSet1.commandtext:='execute pro_insert '''+edit1.text+''' ,'''+edit2.text+''' ,... ';