初涉delphi,50分请教一个简单问题—查询控件TADOQuery调存储过程 SQL.Add('declare @Name varchar(20) ');SQL.Add('exec abc_ji :id,@Name output ');SQL.Add('select Ret=@Name ');Open; 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 abc-ji无效可能是你的数据库连错了;我觉得query好象不能返回一个 output类型的参数,因为他只是一个值而非一个recordset最好还是用ADOStoredProc 设置ADOStoredProc 的ProcedureName就可以看到他的参数,设置以下参数的类型 ADOStoredProc1.ExecProc; Edit1.Text:= ADOStoredProc1.Parameters[2].Value;要用adoqueryCREATE PROCEDURE abc_ji @ID int ASselect name from student where ID=@ID---------id :=111;qry.closeqry.sql.text := 'abc_ji '+ittostr(id);qry.open;eidt1.text :=qry.Fields[0].AsString;qry.close;//我已经验证过了 对newyj(老鬼):老是提示我:Missing Connection or ConnectionString但是我显示表的记录又正确,至少不是数据库连接出错,这是什么原因? 返回参数的存储过程,不能用TADOQuery,必须用TADOProcedure 对zx_wang(wzx) :谢谢你,但是我写一个存储过程进行查询,用查询控件应该能显示结果吧?怎样实现?我的存储过程已该成:CREATE PROCEDURE abc_ji @ID intASselect name from student where ID=@ID ADOQuery1.SQL.ADD('EXEC @ID = 1');OK! 或者ADOQuery1.SQL.ADD('EXEC @ID = :ID');Parameters['ID'].Value := IntTostr(Edit1.Text); 你的ProcedureName是不是"abc_ji;1"?去掉";1" ADOQuery1.SQL.ADD('EXEC abc_ji @ID = :ID');ADOQuery1.Parameters['ID'].Value := IntTostr(Edit1.Text); 请问各位ADOQuery1的哪些属性需设置? 执行到ADOQuery1.open;还是提示:Missing Connection or ConnectionString没辙了,都不知道该在哪些地方设置,555555555555!!!!! 1.ODBCADOQuery1.ConnectionString := 'Driver={SQL Server};UID=sa;PWD=;Initial Catalog=AirImport;Server=192.168.12.6'2.OLEDBADOQuery1.ConnectString := 'Provider=SQLOLEDB.1;User ID=sa;Password=;Initial Catalog=AirImport;Data Source=192.168.12.6'强烈建议你用OLEDB 合并多行 文字垂直居中显示......要使用MultilineCells属性 有关DELPHI7.0 与 QuickReport 的问题.... 导出SQL语句为文件 过些天就是老婆的生日了,放分庆祝 窗体启动问题 为什么在EDIT和控件中找不到DATASOURCE等和数据控件相关的属性呢 怎么实现像网络邻居中的IP地址的输入一样的edit控件(再现等待) 新手问题 菜鸟问题!请各位大虾帮忙急! 请问:怎样在程序中确定程序的其实位置? 如何读取硬盘的ID号,利用计算机硬件加密 保存XML文档的问题?
我觉得query好象不能返回一个 output类型的参数,因为他只是一个值而非一个recordset
最好还是用ADOStoredProc
设置ADOStoredProc 的ProcedureName
就可以看到他的参数,设置以下参数的类型
ADOStoredProc1.ExecProc;
Edit1.Text:= ADOStoredProc1.Parameters[2].Value;
要用adoquery
CREATE PROCEDURE abc_ji
@ID int AS
select name from student where ID=@ID
---------
id :=111;
qry.close
qry.sql.text := 'abc_ji '+ittostr(id);
qry.open;
eidt1.text :=qry.Fields[0].AsString;
qry.close;//我已经验证过了
但是我显示表的记录又正确,至少不是数据库连接出错,这是什么原因?
CREATE PROCEDURE abc_ji
@ID int
AS
select name from student where ID=@ID
OK!
ADOQuery1.SQL.ADD('EXEC @ID = :ID');
Parameters['ID'].Value := IntTostr(Edit1.Text);
ADOQuery1.Parameters['ID'].Value := IntTostr(Edit1.Text);
还是提示:Missing Connection or ConnectionString
没辙了,都不知道该在哪些地方设置,555555555555!!!!!
ADOQuery1.ConnectionString := 'Driver={SQL Server};UID=sa;PWD=;Initial Catalog=AirImport;Server=192.168.12.6'
2.OLEDB
ADOQuery1.ConnectString := 'Provider=SQLOLEDB.1;User ID=sa;Password=;Initial Catalog=AirImport;Data Source=192.168.12.6'强烈建议你用OLEDB