每次在运行时都提示这个output类型的参数没有赋值;
我百思不解.到底应怎样做呢?
谢谢!!!

解决方案 »

  1.   

    try
        ADOStoredProc := TADOStoredProc.Create(nil);
        ADOStoredProc.Connection := ADOConnection;    ADOStoredProc.ProcedureName := 'sp_Monitors_Login';
        ADOStoredProc.Parameters.CreateParameter('UserName', ftString, pdInput, 20, UserName);
        ADOStoredProc.Parameters.CreateParameter('Password', ftString, pdInput, 20, Password);
        ADOStoredProc.Parameters.CreateParameter('Result', ftBoolean, pdReturnValue, 1, 0);    ADOStoredProc.Prepared := True;
        ADOStoredProc.ExecProc;
        Result := ADOStoredProc.Parameters.ParamByName('Result').Value;
      finally
        ADOStoredProc.Free;
      end;
      

  2.   

    你的OUTPUT 参数为 TEST
    ADOStoredProc.Parameters.ParamByName('TEST').Value;这个就是了 ADOStoredProc.Parameters.ParamByName('Result').Value;这个不是的,返回的在运行存储过程中的系统参数 IF < 0 存储过程运行失败
      

  3.   

    try
        ADOStoredProc := TADOStoredProc.Create(nil);
        ADOStoredProc.Connection := ADOConnection;    ADOStoredProc.ProcedureName := 'sp_Monitors_Login';
        ADOStoredProc.Parameters.CreateParameter('UserName', ftString, pdInput, 20, UserName);
        ADOStoredProc.Parameters.CreateParameter('Password', ftString, pdInput, 20, Password);
        ADOStoredProc.Parameters.CreateParameter('Result', ftBoolean, pdInOutput, 1, 0);//这样声明    ADOStoredProc.Prepared := True;
        ADOStoredProc.ExecProc;
        edit2.text := ADOStoredProc.Parameters.ParamByName('Result').Value;//这样的结果
      finally
        ADOStoredProc.Free;
      end;
      

  4.   

    ADOStoredProc.Parameters.ParamByName('@test').Value := edit1.text