Foxtable(狐表)用户栏目专家坐堂 → 关于调用存储过程的问题


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

主题:关于调用存储过程的问题

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


加好友 发短信
等级:婴狐 帖子:20 积分:208 威望:0 精华:0 注册:2011/5/10 15:36:00
关于调用存储过程的问题  发帖心情 Post By:2011/5/10 15:50:00 [只看该作者]

以下内容为程序代码:

1 DataTables("表C").DataRows.Clear()
2 Dim dt As DataTable
3 Dim i As Integer
4 Dim SQL As String
5 Dim Date1 As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1")
6 Dim Date2 As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker2")
7
8 If Date1.Text = Nothing OrElse Date2.Text = Nothing Then
9
10 Messagebox.Show("请输入开始结束日期!")
11 Return
12 End If
13
14 SQL = " EXEC CFYRW_SP '" & Replace(Date1.Text,"-","") & "'"
15
16 Messagebox.Show(SQL)
17 DataTables("表C").Fill(SQL,"测试机",True)

 

我设计了个新窗口,按钮Click事件中,使用如上方法调用存储过程,然后通过Datatables.Fill运行存储过程,企图把存储过程返回的表填充到"表C"中.运行时点击按钮,表C没有填充数据,也没有报错.(此存储过程在SQL查询分析器中能正常运行并返回表) 请各位大师指点


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/10 16:05:00 [只看该作者]

这样看看:

 

SQL = "Select * From ( EXEC CFYRW_SP '" & Replace(Date1.Text,"-","") & "')"


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


加好友 发短信
等级:婴狐 帖子:20 积分:208 威望:0 精华:0 注册:2011/5/10 15:36:00
  发帖心情 Post By:2011/5/10 16:11:00 [只看该作者]

这样子直接报 SQL 语句执行错误哦

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/10 16:45:00 [只看该作者]

不好意思,你原来的代码没有问题。

Fill之后表结构变化了没有,如果变化了,说明执行了,只是没有符合条件的数据。

foxtable提供了一个SQL执行窗口,你可以这里先调试一下SQL语句:

 

http://help.foxtable.com/topics/1484.htm

 


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


加好友 发短信
等级:婴狐 帖子:20 积分:208 威望:0 精华:0 注册:2011/5/10 15:36:00
  发帖心情 Post By:2011/5/10 16:50:00 [只看该作者]

图片点击可在新窗口打开查看能使用存储过程返回的表的吗?

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


加好友 发短信
等级:婴狐 帖子:20 积分:208 威望:0 精华:0 注册:2011/5/10 15:36:00
  发帖心情 Post By:2011/5/10 16:55:00 [只看该作者]

Fill之后"表C"结构没有发生变化,刚刚测试了下,存储过程是执行成功的,就是存储过程返回的数据没有填充到"表C"中

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


加好友 发短信
等级:婴狐 帖子:20 积分:208 威望:0 精华:0 注册:2011/5/10 15:36:00
  发帖心情 Post By:2011/5/10 16:59:00 [只看该作者]

用执行SQL的窗口直接执行" exec CFYRW_SP  '20110401' "没报什么错误,也没有数据返回.但我用同样的语句在查询分析器里面执行是能返回出来结果的

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/10 17:21:00 [只看该作者]

这说明狐表目前不能取得存储过程返回的表,你将存储过程返回的表先存入数据库中,过度一下,用Select取这个过度表的数据算了。


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/5/10 23:46:00 [只看该作者]

存储过程的例子太少了,想学啊····  有懂行的能提供些在狐表种应用的例子好吗? 谢谢啊。。。


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


加好友 发短信
等级:婴狐 帖子:20 积分:208 威望:0 精华:0 注册:2011/5/10 15:36:00
  发帖心情 Post By:2011/5/11 8:48:00 [只看该作者]

嗯~只能用这样的方法了.谢谢大师

 回到顶部