各位大俠我在DELPHI6下用ADOstoredproc CALL SQL SERVER的存儲過程,在call 第一次時是沒有問題在用同一控件call 第二次,第三次時常會出現“Access violation at address XXXXX in module ‘msado15.dll’”錯誤!請各位幫忙,急急!!!!!
解决方案 »
- delphi 如何访问Sql server 2000链接的服务器??
- 用过TypInfo 单元中的 GetPropInfo 函数的进来帮忙一下,谢谢!~
- 如何使子窗体在最小化时,在单击使用刚刚打开它的控件要如何设置的.
- 画圆?
- 菜鸟的烦恼之"文件格式"篇
- 一个关于SQL语句的简单问题。。。。。
- 随机生成三位数,不足三位的补0,用format能做到吗?
- 当系统改变分辨率时,能在程序中获取相关的消息吗?
- 有DEPHI还需要分析建造数据结构吗?
- 请教SQL语句
- 请问这是什么错误,该如何解决???
- 请问indy的idserveriohandlerssl和idssliohandlersocket是干什么用的。
@p_ret int=null out,
@p_msg varchar(4000) =null out
AS
declare @sp_name varchar(30)
set @sp_name = '(pk_getwh)'
select * from wh_wh order by whid
set @p_ret = 1
set @p_msg = 'ok!'+@sp_name
return
GODelphi的代碼:
procedure TWHMANAGE_FRM.FormCreate(Sender: TObject);
begin
inherited;
BulidWh;
TV_wh.FullExpand
end;procedure TWHMANAGE_FRM.bulidWH;
var
I: integer;
V_ret: integer;
V_msg: string;
node: TTreeNode;
begin
with Dm.ADOWH do
begin
Active := False;
ProcedureName := 'PK_GETWH';
// V_Ret := 0;
// V_msg := '';
Prepared := True;
Parameters.Refresh;
// parameters.Paramvalues['@P_Ret'] := V_ret;
// Parameters.ParamValues['@P_Msg'] := V_msg;
Active := True;
if not IsEmpty then
begin
First;
for I := 0 to RecordCount - 1 do
begin
PV_WhID := FieldByName('WHID').AsString;
Node := TV_WH.Items.AddChild(nil, FieldByName('WHID').AsString + '_' + FieldByName('WHNM').AsString);
Node.ImageIndex := 14;
Node.SelectedIndex := 15;
bulidZone(Node);
Next;
end;
end;
end;
end;
procedure TWHMANAGE_FRM.bulidzone(V_UpNode: TTreeNode);
var
I: integer;
V_ret: integer;
V_msg: string;
Node: TTreeNode;
begin
with Dm.ADOZONE do
begin
// Close;
Active := False;
ProcedureName := 'PK_GETZONE';
// Prepared := True;
Parameters.Refresh;
Parameters.ParamValues['@P_WHID'] := PV_WhID;
// Parameters.ParamValues['@P_OP'] := G_UserID;
// parameters.Paramvalues['@P_Ret'] := V_ret;
// Parameters.ParamValues['@P_Msg'] := V_msg;
// Open;
Active := True;
if not IsEmpty then
begin
First;
for I := 0 to RecordCount - 1 do
begin
PV_WhZONEID := FieldByName('WHZONEID').AsString;
Node := TV_WH.Items.AddChild(V_upNode, FieldByName('WhZONEID').AsString + '_' + FieldByName('WhZONENM').AsString);
Node.ImageIndex := 16;
Node.SelectedIndex := 17;
bulidSeg(Node);
Next;
end;
end;
end;
end;其他還有二次procedure與上兩個相同,
Thanks