Foxtable(狐表)用户栏目专家坐堂 → 动态sql变量写法问题


  共有1890人关注过本帖树形打印复制链接

主题:动态sql变量写法问题

帅哥哟,离线,有人找我吗?
happyft
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
动态sql变量写法问题  发帖心情 Post By:2017/9/30 11:46:00 [只看该作者]

 DECLARE @sql NVARCHAR(MAX);
 SET @sql
    = 'INSERT INTO #temp2(tbname,tbid,dateio) se lect ''' + @tbname + ''' ,' + @tbid + ',' + @dateio + ' From '
    + @tbname + ' where 仓库 = ' + @ck + ' and ' + @dateio + '= ''2017-09-23''' -- ' ''+ @datepd + '''';
    SELECT @sql;
  EXEC sp_executesql @sql;

动态变量的sql语句总是让人头晕,,上面红色部分输入常量测试没有问题,换成变量就总提示字符串转换日期出错,为什么?
' ''+ @datepd + ''''  都是单引号,写法应该没错.

谢谢!

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110579 积分:562791 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/9/30 12:18:00 [只看该作者]

SELECT @sql;之后返回的完整sql是什么内容

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/9/30 12:32:00 [只看该作者]

把传人参数@datepd 由datetime改为varchar就可以了

还有一个问题如下为储存过程的后面语句 :
  
    SE LECT *
    FROM #temp2;

最后一个语句是查询这个#temp2得到所有想要的数据,这个表要怎么才能返回到前台
Dim cmd As New SQLCommand
    cmd.ConnectionName = Mydata
    Dim dt As DataTable
    cmd.CommandText = "Ex ec usp_pd100 '" & dr("仓库")  & "', '" & dr("盘点日期") & "'"
    dt = cmd.ExecuteReader
    If dt.DataRows.count > 0 Then
        Forms("盘点导入检查").Open
    End If
上面执行结果窗口没打开,表示没有数据唉,实际查询临时表中是有数据的

谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
HappyFt
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2017/9/30 13:04:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:查询表.jpg
图片点击可在新窗口打开查看

执行储存过程是有数据的,但用msgbox(dt.datarows.count)却返回0,为什么?

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110579 积分:562791 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/9/30 14:36:00 [只看该作者]

Foxtable的oledb驱动不支持在存储过程的临时表中返回数据,可以创建一个数据表做临时存储数据的表

 回到顶部