Foxtable(狐表)用户栏目专家坐堂 → [求助]表达式中SQL表名的使用


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

主题:[求助]表达式中SQL表名的使用

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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
[求助]表达式中SQL表名的使用  发帖心情 Post By:2017/9/13 14:35:00 [只看该作者]

 老师,
关于SQL查询表生成查询命了使用

例如:
DIM dt as datatable
....
cmdtext="Select  {表A}.*,{表B}.*,{表C}.*,{表D}.*Fr om ......JOIN.....后面省略了"
dt =cmd.ExecuteReader()

假如生成了上述的临时表  表A 表B 都有 第一列,查询表可以看到临时表 有  表A.第一列 表B.第一列 
DIM dt2 as datatable=datatables(“表B”)
下面的写法 是否正确
Dim drs2 As List (of DataRow)=dt.SQLSelect("{表A}.[第一列]='"& dr("第一列") &"'") 这么写正确

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/13 14:42:00 [只看该作者]

 你在sql测试窗口,拷贝你的sql语句加上你的条件语句测试,如果没报错,就是正确的。


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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/9/13 14:48:00 [只看该作者]

 恩 这块 经常出现报错的 只要更改SQL语言附加额外新增表 就有报错危险,
老师

不存在下面情况吧

Dim drs2 As List (of DataRow)=dt.SQLSelect("{表A}.[第一列]='"& dr("{表B}.[第一列]") &"'") 这么写正确

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/13 15:23:00 [只看该作者]

如果是sql语句,要这样写 {表A}.第一列

 

如果是foxtable里面使用,这样写 http://www.foxtable.com/webhelp/scr/0193.htm

 

你sql生成的时候,指定列名咯,这样就没问题。


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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/9/13 16:52:00 [只看该作者]

 100%不存在下面标注颜色的情况出现 吧

Dim drs2 As List (of DataRow)=dt.SQLSelect("{表A}.[第一列]='"& dr("{表B}.[第一列]") &"'")
[此贴子已经被作者于2017/9/13 16:54:02编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/13 17:00:00 [只看该作者]

查看表结构

 

http://www.foxtable.com/webhelp/scr/0193.htm

 

里面是什么,你就要写什么。


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


加好友 发短信
等级:九尾狐 帖子:2928 积分:20184 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/9/14 16:43:00 [只看该作者]

老师,
    用SQL生成的临时表dt001(由表A 与表B构成,select {表A}.*,{表B}.*,)表A有列名“第一列”,表B有列名“第一列”,不加载数据,用SQLselect 查询条件如下就会出错

DIM DT1 AS  datatable=dt
DIM DT2 AS  datatable=dt
dim dr1 as datarow=DT1.datarows(0)
dim dr2 as datarow=DT2.SQLselect("{表A}.[“第一列”]=’“dr1(”第一列“)”‘")
这个dr1(”第一列“)好像系统不会判断是表A还是表B ,这时候好像就会报错,是这样吗?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/9/14 17:04:00 [只看该作者]

1、为什么要用*?为什么不能一个一个列名的指定?这样才没有问题;

 

2、查看表结构,看其列名是什么,是什么dr里面就写什么


 回到顶部