Foxtable(狐表)用户栏目专家坐堂 → [讨论] QueryBuilder里面的Select中,表名如何引用?


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

主题:[讨论] QueryBuilder里面的Select中,表名如何引用?

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


加好友 发短信
等级:五尾狐 帖子:1042 积分:7475 威望:0 精华:0 注册:2008/8/31 22:52:00
[讨论] QueryBuilder里面的Select中,表名如何引用?  发帖心情 Post By:2009/5/13 23:19:00 [只看该作者]

Dim drs As List(Of DataRow)
drs = DataTables("接口设置").Select("[软件简称] = '金蝶60'")

for each dr as datarow in drs
  Dim q As new QueryBuilder
  q.C
  q.TableName = dr("表名")
  q.SelectString = "Select * From {"dr("表名")"} "
  q.Build
next

我已将数据源"会计数据"中的表名,存放在drs 中

现在已用for each 取得每一行的 “表名”

现在想要将“表名”引用到SQL查询语句中的 from 中。

结果,程序提示“q.SelectString = "Select * From {"dr("表名")"} "   出错!”

估计是 单引号 双引号的问题!

请教各位!

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


加好友 发短信
等级:五尾狐 帖子:1042 积分:7475 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2009/5/13 23:49:00 [只看该作者]

找到了正解:

  q.SelectString = "Select * From {"&dr("表名")&"}"

这是正确的,但是,我还是不明白

1、为什么要有 & ,& 在什么情况下要用,我在帮助里只看到了全局变量运用在查询表达式中有相关的用法!

2、这里的" "  是不是表示  dr("表名")  是一个表达式?如果这是一个表达式,这什么里面的  "表名" 又是什么?为什么没有用 ' '?

3、能定义一下 表示式的含义吗?  给一个准确全面的定义? 


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


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

请看看帮助:事件编程 - 动态合成表达式。


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


加好友 发短信 F6
等级:狐精 帖子:3036 积分:19229 威望:0 精华:2 注册:2008/9/1 7:50:00
[求助]一个时间设置的问题!!!!!  发帖心情 Post By:2009/5/14 8:24:00 [只看该作者]

查看
帮助中---动态合成表达式
介绍很详细


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


加好友 发短信
等级:五尾狐 帖子:1042 积分:7475 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2009/5/15 7:57:00 [只看该作者]

我就是看了“动态合成表达式”,才有正解的。

但是,自己多问几个为什么?自己还是解释不清,说服不了自己,这样以后如何举一反三地运用?

1、为什么要有 & ,& 在什么情况下要用,我在帮助里只看到了全局变量运用在查询表达式中有相关的用法!

2、这里的" "  是不是表示  dr("表名")  是一个表达式?如果这是一个表达式,这什么里面的  "表名" 又是什么?为什么没有用 ' '?

3、能定义一下 表示式的含义吗?  给一个准确全面的定义? 


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


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

字符串连接符

运算符&来连接字符串,例如:

Dim s As String
s = "abc" & "123" 's的值将是"abc123"

&可以用来连接任何数据,例如日期型、数值型,在连接之前会自动将非字符型的数据转换为字符型。
例如在命令窗口输入并执行下面的代码,即可显示当天的日期:


Output.Show( "今天是:" & Date.Today)

需要注意的是,&运算符前后必须有空格,将下面的代码复制到命令窗口执行:

Dim s1 As String = "abc"
Dim
s2 As String = "def"
Output.Show(s1&s2) '因为没有空格,执行时会出现错误.

上述代码在执行时,会出现错误提示,要正确执行,必须改为:

Dim s1 As String = "abc"
Dim
s2 As String = "def"
Output.Show(s1 & s2)
'&运算符前后有了空格,可以正常执行了

 


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


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

下面的语句分成了三段:

q.SelectString = "Select * From {" & dr("表名") & "}"

如果dr("表名")等于"订单",那么三段组合起来就是:

q.SelectString = "Select * From {订单}"

显然合成的SQL语句符合我们的要求。

字符值才需要用单引号的,而表名、列名不需要,表名用大括号,列名用方括号,例如:

q.SelectString = "Select * From {订单} Where [产品] = 'PD01'"


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


加好友 发短信
等级:五尾狐 帖子:1042 积分:7475 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2009/5/15 23:23:00 [只看该作者]

表达式的准确定义还是没有明白。

其他的基本清楚了!


 回到顶部