Foxtable(狐表)用户栏目专家坐堂 → 取字符检索问题求教


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

主题:取字符检索问题求教

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/2 14:13:00 [显示全部帖子]

什么数据库?

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/2 14:22:00 [显示全部帖子]

sq = DataTables("WH_STOCK").SQLFind("SUBSTRING([number],2,len([number]) - 1) = '" & gdh & "'") 

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/2 14:32:00 [显示全部帖子]

完整代码发上来

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/2 14:36:00 [显示全部帖子]

示例三

通常应该在代码中判断是否找到了符合条件的行,然后再运行后续的代码。
例如要找出最近一次订购产品数量超过1000的订单,并显示订单的日期和客户:

Dim dr As DataRow
dr = 
DataTables("订单").SQLFind("数量 > 1000","日期 Desc")
If 
dr IsNot Nothing Then '如果找到的话
    Output.Show(
"日期:" & dr("日期"))
    Output.Show(
"客户:" & dr("客户"))

End If

如果我们不加上判断,直接:

Dim dr As DataRow
dr = 
DataTables("订单").SQLFind("数量 > 1000","日期 Desc")
Output.Show(
"日期:" & dr("日期"))
Output.Show(
"客户:" & dr("客户"
))

一旦订单表并不存在订购数量超过1000的订单,那么Find方法返回Nothing,导致后续代码运行出错。


 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107727 积分:547968 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/2/2 14:47:00 [显示全部帖子]

使用了函数,sql查询就会是全表扫描,用不了索引,速度会慢几个级别:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=158943&replyID=&skin=1

没有结果,说明没有符合条件的数据。如果经常要做这种查询,建议增加一个辅助列,直接记录没有首字符的数据使用

 回到顶部