起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 360|回复: 10

【搞定】ORACLE存储过程的问题**

[复制链接]
发表于 2007-7-3 17:55:56 | 显示全部楼层 |阅读模式
//取得住院门诊号
Function TMZHJYWXX.GetZYH(LX:string):String;
var storedproc :TStoredProc;
begin
  Result :='';
  storedproc := TStoredProc.Create(Self);
  try
    storedproc.ConnectionString :='DATABASEURL=Biz:HHZYLBXXXXTHHYB.Database';
    storedproc.StoredProcName :='prc_comm_GetSequence';
    storedproc.Params.CreateParam(TFieldType.ftString,'prm_Kind',TParamType.ptInput).AsString :=LX;
    storedproc.Params.CreateParam(TFieldType.ftFMTBcd,'prm_Sequence',TParamType.ptOutput);
    storedproc.Params.CreateParam(TFieldType.ftFMTBcd,'prm_AppCode',TParamType.ptOutput);
    storedproc.Params.CreateParam(TFieldType.ftString,'prm_ErrorMsg',TParamType.ptOutput);
    storedproc.Execute;
    if storedproc.Params[2].Value =1 then
      Result := storedproc.params[1].AsString
    else
      Raise Exception.Create('未能取得住院门诊号!');
  finally
    storedproc.Free;
  end;
end;

上面是我手动写的代码,但是运行到storedproc.Execute;时会出错

123.jpg

32.73 KB, 下载次数: 173

回复

使用道具 举报

发表于 2007-7-4 08:57:19 | 显示全部楼层
请以“无效的列索引”搜索
回复 支持 反对

使用道具 举报

发表于 2007-7-4 09:06:07 | 显示全部楼层
在现在的版本中,对存储过程控件操作时,不能代码创建参数。否则会出现1楼的错误。

可以直接为控件指定过程名称,控件会自动创建参数的,你直接调用就可以了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-4 09:39:50 | 显示全部楼层
意思就是不能自已手动创建存储过程控件了?
回复 支持 反对

使用道具 举报

发表于 2007-7-4 09:57:16 | 显示全部楼层
应该是可以创建TStroeProc,但是不用创建参数,指定过程名称这个属性后,参数应该自动被添加上了。
回复 支持 反对

使用道具 举报

发表于 2007-7-4 10:35:43 | 显示全部楼层
楼主看顶置贴吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-4 10:37:52 | 显示全部楼层
不行的,手动创建的TStroeProc参数不会自动添加上,我就是因为那样试过不行才这样手动添加参数的
回复 支持 反对

使用道具 举报

发表于 2007-7-4 11:17:27 | 显示全部楼层
楼主什么版本
我的测试例子是2800的
都是测试过的代码。会自动创建参数。
附件:

123.rar

7.43 KB, 下载次数: 80

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-7-4 11:55:29 | 显示全部楼层
2800版本的,我先看看你的代码
回复 支持 反对

使用道具 举报

发表于 2007-7-6 10:11:38 | 显示全部楼层
??
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-12 12:11 , Processed in 0.043336 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表