Foxtable(狐表)用户栏目专家坐堂 → [求助]多个数据源


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

主题:[求助]多个数据源

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


加好友 发短信
等级:三尾狐 帖子:655 积分:7689 威望:0 精华:0 注册:2013/12/11 17:49:00
[求助]多个数据源  发帖心情 Post By:2014/3/28 9:35:00 [只看该作者]

以下是销售订单表、产品工序单价主表来自一个数据源

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "Select * FROM {销售订单表} where 生产任务单号 not in (Select 生产任务单号 FROM {产品工序单价主表}) "
dt = cmd.ExecuteReader()

如果销售订单表、产品工序单价主表分别来自不同的数据源 ERP、GZXT

请问不同数据源如何编写以下代码?


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/28 9:52:00 [只看该作者]

Select语句中的表,必须是同一个数据源,铁律。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/28 9:56:00 [只看该作者]

有思路,但是数据量很大的时候,效率会比较低:
 
cmd1.CommandText = "Select Distinct 生产任务单号 FROM {产品工序单价主表}"

dim s as string
dt = cmd1.ExcuteReader()
for each dr as datarow in dr.datarows

   if s > "" then

      s = s & ","

   end if

    s= s & dr("生产任务单号 ")

next

cmd2.commandtext = "Select * FROM {销售订单表} where 生产任务单号 not in (" & s & ")"

[此贴子已经被作者于2014-3-28 9:56:16编辑过]

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


加好友 发短信
等级:三尾狐 帖子:655 积分:7689 威望:0 精华:0 注册:2013/12/11 17:49:00
  发帖心情 Post By:2014/3/28 10:43:00 [只看该作者]

谢谢狐狸爸爸

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


加好友 发短信
等级:三尾狐 帖子:655 积分:7689 威望:0 精华:0 注册:2013/12/11 17:49:00
  发帖心情 Post By:2014/3/28 12:16:00 [只看该作者]

cmd1.CommandText = "Select Distinct 生产任务单号 FROM {产品工序单价主表}"

dim s as string
dt = cmd1.ExcuteReader()
for each dr as datarow in dr.datarows

   if s > "" then

      s = s & ","

   end if

    s= s & dr("生产任务单号 ")

next

cmd2.commandtext = "Select * FROM {销售订单表} where 生产任务单号 not in (" & s & ")"

 

这段代码是错的,执行不了


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/28 12:26:00 [只看该作者]

这个代码是给你示意的,给的是一个思路,具体自己调试分析。


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


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/28 12:28:00 [只看该作者]

Dim cmd1 As New SQLCommand
Dim cmd2 As New SQLCommand
Dim s As String
Dim dt As DataTable
cmd1.Connection Name = "数据源1"
cmd2.Connection Name = "数据源2"
cmd1.CommandText = "Select Distinct 生产任务单号 FROM {产品工序单价主表}"
dt = cmd1.ExecuteReader
For Each dr As DataRow In dt.datarows
   If s > "" Then
      s = s & ","
   End If
    s = s & "'" & dr("生产任务单号 ") & "'"
Next
cmd2.commandtext = "Select * FROM {销售订单表} where 生产任务单号 not in (" & s & ")"
dt = cmd2.ExecuteReader

[此贴子已经被作者于2014-3-28 12:28:40编辑过]

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


加好友 发短信
等级:三尾狐 帖子:655 积分:7689 威望:0 精华:0 注册:2013/12/11 17:49:00
  发帖心情 Post By:2014/3/28 12:34:00 [只看该作者]

好的,谢谢

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


加好友 发短信
等级:五尾狐 帖子:1100 积分:8985 威望:0 精华:0 注册:2014/3/15 14:36:00
  发帖心情 Post By:2015/1/19 23:39:00 [只看该作者]

可以参考用友财务的数据查询方法

 回到顶部