以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于调用存储过程的问题  (http://foxtable.net/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
--  
嗯~只能用这样的方法了.谢谢大师