求救(关于存储过程) 如何在delphi中编程实现给存储过程中的参数赋值? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 例:with MyStoredProc dobegin ParamByName('@StudID').AsString:='123456'; ExecProc;end;MyStoredProc 是存储过程控件名@StudID 是存储过程中定义的变量 就这样,跟SQL查询中的动态参数传递类似啊 ParamByName('@StudID').AsString:='123456';对吗?你们用的是什麽存储过程控件?我用的是adostoredproc,怎麽没有parambyname?而且也没有asstring AdoStoredProc1.Parameters.ParamByName('@StudID')).AsString:='123456'; 没有AsString,而且老是提示我没找到我定义的参数,是怎麽回事? ParamByName('@StudID').AsString:='123456'; |------存储过程里的变量名 应该写成Parameters.ParamByName('@StudID').value:='123456'; 也可以这样Parameters[1].value=...参数数组中第一个是返回值即:Parameters[0].value用于返回存储过程执行的结构,参数[1]...等等依次为存储过程的各个参数。 看了以前的回复,说是要不自己在程序中重新创建一次,或者Parameters.Refresh,但是前者我试验了一下,是可以,但是后者还是报参数没有定义,报错的参数和没有加那一句不一样,怪事正确的with StoredProc_GetScore do begin close; ProcedureName := 'CSP_GetGradeString;1'; Parameters.CreateParameter('@Return_Value', ftInteger, pdReturnValue, 8, null); Parameters.CreateParameter('@WhichTime', ftString, pdInput, 6, null); Parameters.CreateParameter('@SSn', ftString, pdInput, 8, null); Parameters.CreateParameter('@gradeString', ftString, pdInputOutput, 500, null); parameters.parambyname('@SSn').value := xh; parameters.parambyname('@WhichTime').value := rq; prepared := true; try ExecProc; Result := parameters.parambyname('@gradeString').value; except Result := '没有查询结果或查询出现错误'; end; close; end;还报错的with StoredProc_GetScore do begin close; ProcedureName := 'CSP_GetGradeString;1'; Parameters.Refresh; parameters.parambyname('@SSn').value := xh; parameters.parambyname('@WhichTime').value := rq; prepared := true; try ExecProc; Result := parameters.parambyname('@gradeString').value; except Result := '没有查询结果或查询出现错误'; end; close; end; StoredProc1.parameters.parambyname('..').asinteger:=12;execproc; StoredProc1.parameters.parambyname('..').value:=12;execproc; 怎么解决sendmessage返回值为0呢??? 点击stringgrid最上面那行的某一列,怎么知道那一行那一列的内容? 请教:可以用一条语句实现这条查询语句吗?分不够在加 程序出现错误,实在找不出,请指教! 如何用程序读出邮件的正文内容以及其他属性?急急急! 用pagecontrol加载窗体的问题 CloneCD的序列号 关于有用代码调整系统声音 请告诉我,我做错了什么?(数据添加) 怎样设置dxDBGrid的记录的颜色????? 关于控件的继承!! 请问打开一个模式窗口如何让它在关闭时能返回一个值到主窗口?
begin
ParamByName('@StudID').AsString:='123456';
ExecProc;
end;MyStoredProc 是存储过程控件名
@StudID 是存储过程中定义的变量
你们用的是什麽存储过程控件?
我用的是adostoredproc,怎麽没有parambyname?而且也没有asstring
|------存储过程里的变量名
Parameters[1].value=...
参数数组中第一个是返回值即:Parameters[0].value用于返回存储过程执行的结构,
参数[1]...等等依次为存储过程的各个参数。
正确的
with StoredProc_GetScore do
begin
close;
ProcedureName := 'CSP_GetGradeString;1';
Parameters.CreateParameter('@Return_Value', ftInteger, pdReturnValue, 8,
null);
Parameters.CreateParameter('@WhichTime', ftString, pdInput, 6, null);
Parameters.CreateParameter('@SSn', ftString, pdInput, 8, null);
Parameters.CreateParameter('@gradeString', ftString, pdInputOutput, 500,
null);
parameters.parambyname('@SSn').value := xh;
parameters.parambyname('@WhichTime').value := rq;
prepared := true; try
ExecProc;
Result := parameters.parambyname('@gradeString').value;
except
Result := '没有查询结果或查询出现错误';
end;
close;
end;
还报错的
with StoredProc_GetScore do
begin
close;
ProcedureName := 'CSP_GetGradeString;1';
Parameters.Refresh;
parameters.parambyname('@SSn').value := xh;
parameters.parambyname('@WhichTime').value := rq;
prepared := true; try
ExecProc;
Result := parameters.parambyname('@gradeString').value;
except
Result := '没有查询结果或查询出现错误';
end;
close;
end;
execproc;
execproc;