以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  sql 中如何运用foxtable中的变量  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=1336)

--  作者:小狐
--  发布时间:2008/12/6 19:46:00
--  sql 中如何运用foxtable中的变量

select * from 订单 where 日期 between   \'"&vars("开始日期")&"\' and \'"&vars("结束日期")&"\'

select * from 订单 where 订单编号 (字符变量)

这两句要怎么改sql才能用

 

[此贴子已经被作者于2008-12-6 19:46:24编辑过]

--  作者:wcs
--  发布时间:2008/12/6 20:03:00
--  

举一个例子:
if chk.Checked = True then
   Dim km As new QueryBuilder
   km.TableName = "会计科目查询"
   km.C
   dim s1 as string
       s1 =  "select kmnd,kmdm,kmmc,kmfl,sszt,dxkm,kmjs,sfdfzdc,sfjfzdc,sfsz,sfzxhs from [z_tabkm]  where sszt = "&vars("账套")&""
       s1 = s1 & "and left(kmdm,1) <> \'F\'  and (kmnd = "&vars("kn")&" or kmnd = 0) order by kmdm"
   km.SelectString =  s1
   km.Build
end if

查询语句长了,我分解了一下,关键是"&vars("账套")&""    "&vars("kn")&"

[此贴子已经被作者于2008-12-6 20:03:33编辑过]

--  作者:小狐
--  发布时间:2008/12/6 20:33:00
--  

谢谢,那如果在“ 设置外部数据表---sql新增外部查询表” 中使用变量可以吗。好像它的命令是纯sql语言。

我的意思是说它是在窗口直接编辑命令的。在窗口内可以写入foxtable命令行吗。

[此贴子已经被作者于2008-12-6 22:06:43编辑过]

--  作者:wcs
--  发布时间:2008/12/6 21:57:00
--  

可以使用变量


--  作者:小狐
--  发布时间:2008/12/6 22:11:00
--  
如果引用变量是日期型变量,对格式有什么要求吗。因为帮助文件有说明有时用# / / #, 有时用\' / / \'
--  作者:小狐
--  发布时间:2008/12/6 22:19:00
--  

select 客户名称组合,业务负责人,入库日期,仓库,项目,产品,入库明细.数量,单价,入库明细.金额 from 入库 inner join 入库明细 on 入库.入库单号 = 入库明细.入库单号 where 入库日期 between "&vars("开始日期")&" and "&vars("结束日期")&"

您看这句语句上那里出错了,谢谢


--  作者:wcs
--  发布时间:2008/12/6 22:20:00
--  
这就是日期型变量,用法一样:

between \'"&vars("开始日期")&"\' and \'"&vars("结束日期")&"\'
--  作者:小狐
--  发布时间:2008/12/6 22:20:00
--  
可是提示出错啊
--  作者:小狐
--  发布时间:2008/12/6 22:22:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:as.jpg
图片点击可在新窗口打开查看

--  作者:wcs
--  发布时间:2008/12/6 22:34:00
--  
between \'"&vars("开始日期")&"\' and \'"&vars("结束日期")&"\'

看清楚。

首先,vars("开始日期")对于SQL查询来说是字符串,所以两边用\'\'
然后,vars("开始日期")本身是表达式,所以两边用""
最后,vars("开始日期")要与其他的内容连接起来,所以两边用&&

哈哈!
[此贴子已经被作者于2008-12-6 22:34:20编辑过]