| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 547 人关注过本帖
标题:请教关于VFP执行SQL SERVER有参数的存储过程
取消只看楼主 加入收藏
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:704
专家分:20
注 册:2014-1-16
结帖率:88.62%
收藏
已结贴  问题点数:20 回复次数:7 
请教关于VFP执行SQL SERVER有参数的存储过程
SQLSERVER的存储过程语句如下:
程序代码:
CREATE PROCEDURE sb_query
    @c_sb_bm NVARCHAR(30),
    @c_lb1 NVARCHAR(30)
AS
BEGIN
    SELECT * FROM shebei
    WHERE sb_bm=@c_sb_bm and zl_id in (select id from shebei_zl where lb1=@c_lb1)
END


vfp执行过程语句如下:
cs_sb_bm="zhijiang"
cs_lb1="mijiu"
str_shebei=SQLEXEC(con,"EXEC sb_query @c_sb_bm=?cs_sb_bm,@c_lb1=?cs_lb1","shebei")


SQLSERVER的存储过程没有问题,但是VFP执行有问题,不能通过,但是我也不知道怎么写,恳请师傅们帮忙指正下
搜索更多相关主题的帖子: 存储过程 VFP SQL 参数 执行 
2024-06-08 19:36
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:704
专家分:20
注 册:2014-1-16
收藏
得分:0 
我再把存储过程的完整代码发下:
程序代码:
USE [yksb]
GO
/****** Object:  StoredProcedure [dbo].[sb_query]    Script Date: 2024/6/8 19:59:13 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[sb_query]
    @c_sb_bm NVARCHAR(30),
    @c_lb1 NVARCHAR(30)
AS
BEGIN
    SELECT * FROM shebei
    WHERE sb_bm=@c_sb_bm and zl_id in (select id from shebei_zl where lb1=@c_lb1)
END
2024-06-08 20:02
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:704
专家分:20
注 册:2014-1-16
收藏
得分:0 
问题解决了,在VFP执行的时候把EXEC sb_query @c_sb_bm=?cs_sb_bm,@c_lb1=?cs_lb1 改成EXEC sb_query ?cs_sb_bm,?cs_lb1就可以了
2024-06-09 14:37
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:704
专家分:20
注 册:2014-1-16
收藏
得分:0 
但是接下来我想把存储过程的语句改复杂点,却失败了,师傅们能否帮忙看下,
select * from (SELECT *,shebei_zl.lb1,shebei_zl.lb2,shebei_zl.lb3,shebei_zl.zzs FROM shebei left join shebei_zl on shebei.zl_id=shebei_zl.id) where sb_bm=@c_sb_bm and lb1=@c_lb1
2024-06-09 14:42
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:704
专家分:20
注 册:2014-1-16
收藏
得分:0 
改成如下还是不行:
SELECT *,shebei_zl.lb1,shebei_zl.lb2,shebei_zl.lb3,shebei_zl.zzs FROM shebei left join shebei_zl on shebei.zl_id=shebei_zl.id where shebei.sb_bm=@c_sb_bm and shebei_zl.lb1=@c_lb1
2024-06-09 14:52
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:704
专家分:20
注 册:2014-1-16
收藏
得分:0 
感谢版主csyx,这个问题解决了,又有新的问题了,现在我在存储过程查询了2个表,VFP端怎么接受呢?我试了以下,没有成功,代码如下:
str_shebei=SQLEXEC(con,"EXEC sb_query ?cs_sb_bm,?cs_lb1","shebei","shebei_cs")

2024-06-10 06:46
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:704
专家分:20
注 册:2014-1-16
收藏
得分:0 
版主,您好,您上面这句没有执行存储过程的语句啊,我加上存储过程,用以下的语句,但是过不了
str_shebei=SQLEXEC(con,"EXEC sb_query ?cs_sb_bm,?cs_lb1","select '第1个表'; select '第二个表'", "result")
2024-06-10 13:24
fanjinyu9108
Rank: 2
等 级:论坛游民
帖 子:704
专家分:20
注 册:2014-1-16
收藏
得分:0 
非常感谢版主的解答,您在上面说只是执行效率会比在存储过程中完成差很多,这个我还是不怎么理解,这不就是在执行存储过程吗?我把存储过程的代码和VFP代码复制过来,您看下执行效率会低下吗?
BEGIN
    SELECT *,shebei_zl.lb1,shebei_zl.lb2,shebei_zl.lb3,shebei_zl.zzs FROM shebei left join shebei_zl on shebei.zl_id=shebei_zl.id where shebei.sb_bm=@c_sb_bm and shebei_zl.lb1= @c_lb1 and shebei_zl.lb2= @c_lb2  and shebei_zl.lb3= @c_lb3
    select * from shebei_zl
END

以下是VFP端的,按照您的方法改的,已经运行成功了
SQLEXEC(con,"EXEC sb_query ?cs_sb_bm,?cs_lb1; select '第2个表'", "result")


2024-06-11 07:27
快速回复:请教关于VFP执行SQL SERVER有参数的存储过程
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016154 second(s), 9 queries.
Copyright©2004-2025, BC-CN.NET, All Rights Reserved