菜鸟求救:在SQL中建了一个存储过程,在DELPHI中怎么使用它 Delphi中有数据控件,好像是TProc之类的,我现在没有用Delphi了,然后你在控件中取得存储过程的名字,使用IUNKNOWN接口,实现调用存储过程 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用ADOStoredProc1: TADOStoredProc;在ADO那一页上先在ADOStoredProc1.ConnectionString中设置数据库如ADOStoredProc1.ConnectionString = 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=数据库名;Data Source=服务器名'然后在ADOStoredProc1.ProcedureName = 存储过程名参数在ADOStoredProc1.Parameters中调整如返回数据集,在ADOStoredProc1.Recordset中查找使用时ADOStoredProc1.Open用完了ADOStoredProc1.Close 要视乎那个sql.若是用interbase或firebird作後台, 便可以直接用sql:With query1 do beginsql.clear;sql.add('select output_param1, output_param2,...');sql.add('from MyProc(input_param1, input_param2,...)');open;end; gilbertz(阿黑) 说的真详细,不错, 没什么说的拉 BDE和ADO也差不多,注意设置好参数,去掉名字后面的“;” 我更喜欢用一个动态SQL,如CLIENTDATASET,设置它的DataSetprovider的commandtext可修改,给CLIENTDATASET的commandtext动态赋值,如:CLIENTDATASET.close;CLIENTDATASET.commandtext:=' exec sp_storeprocedure1 参数1,参数2';CLIENTDATASET.open 如果有返回结果集(或CLIENTDATASET.execute如果没有返回结果集) 用Tadoquery或者Tqueryquery1.sql.text := 'exec youprocedue parm1,par1m2';如过没有结果返回就query1.ExecSQL反之就query1.open 高分求介绍:这样的数据库显示控件 我想把DLL打包进EXE.请问有什么好方法? 请问用delphi如何判断access中的字段是否为空???????????急 createfile?? sql 查询问题,很简单但是我不会,会者请进 高分求解:如何实现类似任务栏的效果? 关于case语句的错误提问? Win2000的网络断开是如何检测到的。 ado+sql 删除时出了问题? 如何从已建好的数据库文件中导出sql脚本(包括建立约束,表,索引…所有脚本)?也许我太懒……^_^ 在线等待,菜鸟问题,请帮忙! 如何实现在Form/Image等控件上拖动时候会出现一个虚框?然后出现一个控件???
先在ADOStoredProc1.ConnectionString中设置数据库如
ADOStoredProc1.ConnectionString = 'Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=数据库名;Data Source=服务器名'
然后在ADOStoredProc1.ProcedureName = 存储过程名
参数在ADOStoredProc1.Parameters中调整
如返回数据集,在ADOStoredProc1.Recordset中查找
使用时ADOStoredProc1.Open
用完了ADOStoredProc1.Close
若是用interbase或firebird作後台, 便可以直接用sql:With query1 do begin
sql.clear;
sql.add('select output_param1, output_param2,...');
sql.add('from MyProc(input_param1, input_param2,...)');
open;
end;
说的真详细,不错,
没什么说的拉
CLIENTDATASET.close;
CLIENTDATASET.commandtext:=' exec sp_storeprocedure1 参数1,参数2';
CLIENTDATASET.open 如果有返回结果集(或CLIENTDATASET.execute如果没有返回结果集)
query1.sql.text := 'exec youprocedue parm1,par1m2';
如过没有结果返回就query1.ExecSQL反之就query1.open