以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关于调用存储过程的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=9845) |
-- 作者:yingtianyiyao -- 发布时间: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查询分析器中能正常运行并返回表) 请各位大师指点 |
-- 作者:狐狸爸爸 -- 发布时间:2011/5/10 16:05:00 -- 这样看看:
SQL = "Select * From ( EXEC CFYRW_SP \'" & Replace(Date1.Text,"-","") & "\')" |
-- 作者:yingtianyiyao -- 发布时间:2011/5/10 16:11:00 -- 这样子直接报 SQL 语句执行错误哦 |
-- 作者:狐狸爸爸 -- 发布时间:2011/5/10 16:45:00 -- 不好意思,你原来的代码没有问题。 Fill之后表结构变化了没有,如果变化了,说明执行了,只是没有符合条件的数据。 foxtable提供了一个SQL执行窗口,你可以这里先调试一下SQL语句:
http://help.foxtable.com/topics/1484.htm
|
-- 作者:yingtianyiyao -- 发布时间:2011/5/10 16:50:00 -- 能使用存储过程返回的表的吗? |
-- 作者:yingtianyiyao -- 发布时间:2011/5/10 16:55:00 -- Fill之后"表C"结构没有发生变化,刚刚测试了下,存储过程是执行成功的,就是存储过程返回的数据没有填充到"表C"中 |
-- 作者:yingtianyiyao -- 发布时间:2011/5/10 16:59:00 -- 用执行SQL的窗口直接执行" exec CFYRW_SP \'20110401\' "没报什么错误,也没有数据返回.但我用同样的语句在查询分析器里面执行是能返回出来结果的 |
-- 作者:狐狸爸爸 -- 发布时间:2011/5/10 17:21:00 -- 这说明狐表目前不能取得存储过程返回的表,你将存储过程返回的表先存入数据库中,过度一下,用Select取这个过度表的数据算了。 |
-- 作者:mr725 -- 发布时间:2011/5/10 23:46:00 -- 存储过程的例子太少了,想学啊···· 有懂行的能提供些在狐表种应用的例子好吗? 谢谢啊。。。 |
-- 作者:yingtianyiyao -- 发布时间:2011/5/11 8:48:00 -- 嗯~只能用这样的方法了.谢谢大师 |