以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [讨论] QueryBuilder里面的Select中,表名如何引用?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2783)

--  作者:wcs
--  发布时间:2009/5/13 23:19:00
--  [讨论] QueryBuilder里面的Select中,表名如何引用?
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
--  发布时间:2009/5/13 23:49:00
--  

找到了正解:

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

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

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

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

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


--  作者:狐狸爸爸
--  发布时间:2009/5/14 8:22:00
--  

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


--  作者:kylin
--  发布时间:2009/5/14 8:24:00
--  [求助]一个时间设置的问题!!!!!

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


--  作者:wcs
--  发布时间:2009/5/15 7:57:00
--  

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

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

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

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

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


--  作者:狐狸爸爸
--  发布时间: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)
\'&运算符前后有了空格,可以正常执行了

 


--  作者:狐狸爸爸
--  发布时间:2009/5/15 8:06:00
--  

下面的语句分成了三段:

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

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

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

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

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

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


--  作者:wcs
--  发布时间:2009/5/15 23:23:00
--  

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

其他的基本清楚了!