我在一个form上放了storedproc1,datasource1,dbgrid1
并让他们相互关联
datasource1.dataset->storedproc1
dbgrid1.datasource->datasource1
我在调用storedproc1.open 时提示出错
‘err creating cursor handle'
不知为何
并让他们相互关联
datasource1.dataset->storedproc1
dbgrid1.datasource->datasource1
我在调用storedproc1.open 时提示出错
‘err creating cursor handle'
不知为何
解决方案 »
- 请教高手fastreprot主从表问题!
- 求一段配置文件代码
- 100f分求一个delphi的代码排版工具(用于d7),顶就有分
- 初学delphi 看见书上讲8位16位32位有无符号数,什么叫位?跟字节有关系吗?
- 大吓请进
- 100分请高人指点!关于数据库的导入导出以及文件的复制另存。
- 高手请指教!如何让数据库与TREEVIEW的结合!!
- Delphi 简单问题,不好意思!
- 有关TTreeView的data属性的问题
- 用webbrowser下载money.163.com 网页源码, 碰到的问题, 如下:
- 关于checklistbox分列显示的问题。
- 如何把视频播放设成为桌面的主题内容就是用壁纸的位置播放视频
不用open;
用execute后不会显示错误
但是和dbgrid里面却没有显示结果
!这样你就很容易得到结果!
不返回数据集应该用Execute,返回数据集应该是可以用Open的。
也许要Prepared?机器刚刚重装,没来得及测试。
我在form上放了一个tstoredproc 和一个dbgrid 以及一个datasoure
分别设StoredProc1.datasource:=datasource1;和dbgrid.datasoure:=datasource1;
然后有下面的代码
procedure TForm1.Button1Click(Sender: TObject);
begin
StoredProc1.Procname:='get_capital';
StoredProc1.Prepare;
StoredProc1.ParamByName('capitalname').AsString:='beijing';
StoredProc1.Open;//用execproc后不会出错但是和datasource相关联的dbgrid里面没有数据显示
end;
运行的时候出错
project1.exe raised expectation class ENoResultSet with message 'err createing cursor handle' process stopped .Use step or run to continue
存储过程的metadata如下:
COMMIT WORK;
SET AUTODDL OFF;
SET TERM ^ ;/* Stored procedures */CREATE PROCEDURE "GET_CAPITAL"
(
"COUNTRYNAME" CHAR(20)
)
RETURNS
(
"CAPITAL" CHAR(10)
)
AS
BEGIN EXIT; END ^
ALTER PROCEDURE "GET_CAPITAL"
(
"COUNTRYNAME" CHAR(20)
)
RETURNS
(
"CAPITAL" CHAR(10)
)
AS
begin
for select capital
from cuntry
where name=:countryname
into:capital
do
suspend;
end
^SET TERM ; ^
COMMIT WORK;
SET AUTODDL ON;