Foxtable(狐表)用户栏目专家坐堂 → 第二个参数为空


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

主题:第二个参数为空

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


加好友 发短信
等级:七尾狐 帖子:1521 积分:10733 威望:0 精华:0 注册:2016/9/12 11:18:00
第二个参数为空  发帖心情 Post By:2021/2/7 10:02:00 [显示全部帖子]

Dim drs As List(of DataRow) 
drs = DataTables("订单").SQLSelect("产品 = 'PD02'","", "日期 Desc") ’假设订单表,有100万行,甚至1000万行,第二个参数为空,查找全部,会大幅度影响服务器效率么?
Dim Sum As Integer
For Each dr As DataRow In drs
    Sum = Sum + dr("数量")
Next
Output.Show(Sum)

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


加好友 发短信
等级:七尾狐 帖子:1521 积分:10733 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2021/2/7 11:06:00 [显示全部帖子]

    var latitude1; // 纬度,浮点数,getLocation获得,数据随不同地点变化
    var longitude1 ; // 经度,浮点数,getLocation获得,数据随不同地点变化

    var latitude2; // 纬度,浮点数,服务器字段“纬度”已有数据,数据固定
    var longitude2; // 经度,浮点数,服务器字段“经度已有数据,数据固定


      wx.getLocation({
        type: 'gcj02', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'wgs84'|'gcj02'
        success: function (res) {
        latitude1 = res.latitude; // 纬度,浮点数,范围为90 ~ -90
        longitude1 = res.longitude; // 经度,浮点数,范围为180 ~ -180。
        latitude2 = document.getElementById("latitude2").value; // 纬度,浮点数
        longitude2 = document.getElementById("longitude2").value; // 经度,浮点数

    latitude1 = latitude1 * Math.PI / 180.0;
    latitude2 = latitude2 * Math.PI / 180.0;
    var latitude5 = latitude1 - latitude2;
    var Lb5 = longitude1 * Math.PI / 180.0 - longitude2 * Math.PI / 180.0;
    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(latitude5 / 2), 2) + Math.cos(latitude1) * Math.cos(latitude2) * Math.pow(Math.sin(Lb5 / 2), 2))); 
    s = s * 6378.137;//地球半径
    s = Math.round(s * 10000) / 10000;  //这是求s(单位是米)的方法,计算还挺准


下面是问题:
        Dim drs As List(of DataRow)
        Dim filter As String = “”  ’需要筛选s>5000,这个表达式怎么写?主要是涉及到了“纬度”、“经度”,两个列,有没有官方文档可以查?
        drs = DataTables("物品信息").SQLSelect(filter,20,"添加时间 Desc")
[此贴子已经被作者于2021/2/8 8:36:44编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1521 积分:10733 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2021/2/7 12:01:00 [显示全部帖子]

不行啊,
因为,
是要计算两个经纬点之间的距离,
一个经纬度值在服务器上,
另一个经纬度是动态的

所以

无法直接计算出s,放在第三列




1.sqlselect,filter里面,用能直接计算两个列数据+外部数据吗?即filter里面,计算出数值s,行吗?若不行,该怎么办?

2.sqlselect,filter里面,表达式列,可以使用外部数据参与计算吗?
[此贴子已经被作者于2021/2/7 13:17:04编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1521 积分:10733 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2021/2/7 14:10:00 [显示全部帖子]

楼上是sqlserver里面的函数,这里帖子里,主要是数学函数有用


下面计算s的代码,不看数学函数,2处粉色将字符列(实际都是数字),作为filter的表达式,与5000比较,我感觉,这样应该是不行
想问:有没有代替的办法


Dim drs As List(of DataRow) 
dim s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin([纬度列] / 2), 2) + Math.cos(latitude1) * Math.cos(latitude2) * Math.pow(Math.sin([经度列] / 2), 2))); 
Dim filter As String = “s>5000”
drs = DataTables("物品信息").SQLSelect(filter,20,"添加时间 Desc")

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


加好友 发短信
等级:七尾狐 帖子:1521 积分:10733 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2021/2/7 15:27:00 [显示全部帖子]

按6楼对数学函数进行处理,
然后,
在命令窗口测试,发现找不到行

Dim latitude1 = "1500"
Dim l

Dim drs As List(of DataRow)
drs = DataTables("会员资料").SQLSelect("设置查询_纬度 is not null and (5000 > Math.round(2 * Math.asin(Math.sqrt(Math.power(Math.sin((latitude1 - ([纬度] * Math.PI / 180.0)) / 2), 2) + Math.cos(latitude1) * Math.cos([纬度] * Math.PI / 180.0) * Math.power(Math.sin((longitude1 * Math.PI / 180.0 - [经度] * Math.PI / 180.0) / 2), 2)))*6378.137))",20,"添加时间 Desc") 
msgbox(drs.Count) ’设置为5000<**,结果还是0


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

上面代码,好像有被ft网站,删了一部分,下面是完整代码
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:000.txt


[此贴子已经被作者于2021/2/7 15:32:46编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1521 积分:10733 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2021/2/7 16:14:00 [显示全部帖子]

Dim drs As List(of DataRow)
drs = DataTables("物品信息").SQLSelect("SEL ECT 设置查询_纬度 Fr om {会员资料} W here [设置查询_纬度] <> ''")
msgbox(drs.Count) ’查询结果是0,ft里如何使用sql代码?

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


加好友 发短信
等级:七尾狐 帖子:1521 积分:10733 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2021/2/7 16:39:00 [显示全部帖子]

Dim latitude1 = 1500
Dim longitude1 = 3000

Dim drs As List(of DataRow)
drs = DataTables("会员资料").SQLSelect("设置查询_纬度 is not null and (5000 > round(2 * asin(sqrt(power(sin((latitude1 - ([设置查询_纬度] * PI / 180.0)) / 2), 2) + cos(latitude1) * cos([设置查询_纬度] * PI / 180.0) * power(sin((longitude1 * PI / 180.0 - [设置查询_经度] * PI / 180.0) / 2), 2)))*6378.137))",20,"注册日期 Desc") ’这一句无论如何也找不到资料行,参楼上,都去掉math,但,这里的latitude1与longitude1,都是变量,如何处理?
'drs = DataTables("会员资料").SQLSelect("设置查询_纬度 is not null",20,"注册日期 Desc") ’这一句可以找到行
msgbox(drs.Count)

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


加好友 发短信
等级:七尾狐 帖子:1521 积分:10733 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2021/2/7 17:09:00 [显示全部帖子]

Dim latitude1 = 1500
Dim longitude1 = 3000

Dim drs As List(of DataRow)
drs = DataTables("会员资料").SQLSelect("设置查询_纬度 is not null" And 5000 < round(2 * asin(sqrt(power(sin(("'" & latitude1 & "'" - ([设置查询_纬度] * pi / 180.0)) / 2), 2) + cos("'" & latitude1 & "'") * cos([设置查询_纬度] * pi / 180.0) * power(sin(("'" & longitude1 & "'" * pi / 180.0 - [设置查询_经度] * pi / 180.0) / 2), 2)))*6378.137)"'",20,"注册日期 Desc")
msgbox(drs.Count)


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


这个字符串+表达式,实在搞不定,麻烦瞧瞧


[此贴子已经被作者于2021/2/7 17:16:58编辑过]

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


加好友 发短信
等级:七尾狐 帖子:1521 积分:10733 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2021/2/7 18:05:00 [显示全部帖子]

看了很多次,数值直接使用了,没有日期,应该是字符单引号问题,
但是,怎么调都显示没有定义round


Dim latitu de1 = 1500
Dim longi tude1 = 3000

Dim drs As List(of DataRow)
drs = DataTables("会员资料").SQLSelect("设置查询_纬度 is not null" And 5000 < round(2 * asin(sqrt(power(sin((latitude1 - ([设置查询_纬度] * pi / 180.0)) / 2), 2) + cos(latitude1) * cos([设置查询_纬度] * pi / 180.0) * power(sin((longitude1 * pi / 180.0 - [设置查询_经度] * pi / 180.0) / 2), 2)))*6378.137),20,"注册日期 Desc")

msgbox(drs.Count)


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


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


加好友 发短信
等级:七尾狐 帖子:1521 积分:10733 威望:0 精华:0 注册:2016/9/12 11:18:00
  发帖心情 Post By:2021/2/8 9:39:00 [显示全部帖子]

无论怎么找,msgbox都显示0行
做了个实例:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试实例.zip


命令窗口测试代码:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:命令窗口测试代码.txt


根据3楼可用代码,推导表达式的过程:
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:推导过程.txt


 回到顶部
总数 14 1 2 下一页