Foxtable(狐表)用户栏目专家坐堂 → sql 2008 创建了存储过程link 怎么在狐表端启动,并实现对应的数据写入本地呢?


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

主题:sql 2008 创建了存储过程link 怎么在狐表端启动,并实现对应的数据写入本地呢?

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
sql 2008 创建了存储过程link 怎么在狐表端启动,并实现对应的数据写入本地呢?  发帖心情 Post By:2021/7/9 18:44:00 [只看该作者]

sql 2008 创建了存储过程link  怎么在狐表端启动,并实现对应的数据写入本地呢?

狐表代码:
Dim cmd As new S QLCommand
cmd.Connectio nName = "kj222"
cmd.Comma ndText = "LINK" 
cmd.StoredPr ocedure = True '表示CommandText内容不是标准的SQL语句,而是存储过程名
cmd.Parameters.Add("@MKCODE ","10010")
cmd.Parameters.Add("@ADDRESS ","D:\persionLoaction\Data")
cmd.Parameters.Add("@flag ","1")
Dim dt As DataTable = cmd.ExecuteReader

怎么没有将指定的文件保存到指定的目录下呢?


存储过程语句:

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:link.zip



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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/10 8:52:00 [只看该作者]

只是执行sql,没有返回表格数据的,使用ExecuteNonQuery即可

cmd.Parameters.Add("@flag ","1")
cmd.ExecuteNonQuery

其次xp_cmdshell这玩意我也没用过,百度看了一下,好像是把文件存储到数据库所在的电脑的,不是保存到客户端。自己到数据库里测试通过后再用
另外如果是多人使用的,注意每个用户都传入不同的地址,如果同名可能会被覆盖掉

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)只是执行sql,没有返回表格数据的,使...  发帖心情 Post By:2021/7/10 11:55:00 [只看该作者]

cmd.Paramet ers.Add("@flag ","1")
cmd.ExecuteNonQuery

执行之后 怎么判断执行状况呢?


set @sql='sel ect convert(varchar(20),getdate(),120)+'',''+convert(varchar(10),(sel ect count(vc_Code) from BW_KJ222..m_Localizer where  i_flag =0)) union all'+
' sel ect '''+@code+''' +'',''+convert(varchar(20),[id],120)+'',''+vc_Code +'',''+vc_Name '+
' from BW_KJ222.dbo.m_Localizer where i_Flag=0'

这样的语句 是否可以直接改成  在狐表中可以运行的语句呢?上述的''+   +'' 是不是可以直接删除不要  如下:
Dim cmd As New SQ LCommand
cmd.Connect ionN ame = "kj222"
cmd.CommandText = sele ct convert(varchar(20),getdate(),120),convert(varchar(10),(sel ect count(vc_Code) from BW_KJ222..m_Localizer where  i_flag =0)) union all sele ct code,convert(varchar(20),[id],120),vc_Code ,vc_Name from BW_KJ222.dbo.m_Localizer where i_Flag=0"
Dim xzqy As DataTable = cmd.ExecuteReader
[此贴子已经被作者于2021/7/10 12:00:52编辑过]

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/10 11:58:00 [只看该作者]

执行不出错就说明成功执行完毕了。

如果要执行后返回一个值表示成功还是失败,参考:http://www.foxtable.com/webhelp/topics/3267.htm

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


加好友 发短信
等级:七尾狐 帖子:1571 积分:11238 威望:0 精华:0 注册:2021/1/17 17:06:00
回复:(有点蓝)执行不出错就说明成功执行完毕了。如...  发帖心情 Post By:2021/7/10 12:01:00 [只看该作者]

set @sql='sel ect convert(varchar(20),getdate(),120)+'',''+convert(varchar(10),(sel ect count(vc_Code) from BW_KJ222..m_Localizer where  i_flag =0)) union all'+
 ' sel ect '''+@code+''' +'',''+convert(varchar(20),[id],120)+'',''+vc_Code +'',''+vc_Name '+
 ' from BW_KJ222.dbo.m_Localizer where i_Flag=0'

这样的语句 是否可以直接改成  在狐表中可以运行的语句呢?上述的''+   +'' 是不是可以直接删除不要  如下:
Dim cmd As New SQ LCommand
cmd.Connect ionN ame = "kj222"
cmd.CommandText = sele ct convert(varchar(20),getdate(),120),convert(varchar(10),(sel ect count(vc_Code) from BW_KJ222..m_Localizer where  i_flag =0)) union all sele ct code,convert(varchar(20),[id],120),vc_Code ,vc_Name from BW_KJ222.dbo.m_Localizer where i_Flag=0"
Dim xzqy As DataTable = cmd.ExecuteReader


运行提示:使用 UNION、INTERSECT 或 EXCEPT 运算符合并的所有查询必须在其目标列表中有相同数目的表达式。
是不是必须源端与目标端表结构要一样呢?
[此贴子已经被作者于2021/7/10 12:03:32编辑过]

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


加好友 发短信
等级:超级版主 帖子:111427 积分:567211 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/7/10 13:44:00 [只看该作者]

UNION的语法先网上学习理解一下:https://www.w3school.com.cn/sql/sql_union.asp


 回到顶部