易语言资源网 - 做最全的易语言资源下载社区
精易论坛授权登录

巧用类_ODBC数据库解决外部数据库sqlserver查询慢超时的问题   [复制链接]

    2021-09-17 16:20:38
    数据库类源码
    易语言资源网
    4015 次浏览
    来源链接

大家好,最近在研究公司里的畅捷通T+系统,里面的质检入库功能,想单独做一个读取每天入库产量的工具,最后发现数据库里的3个数据表即可实现 ST_RDRecord 单据信息表 , ST_RDRecord_b 入库记录信息表 , AA_Inventory 物料信息表。

数据表知道了,接下来就是写代码实现了,最开始用的是 外部数据库 ,代码写好,发现一个很严重的问题,因为数据量太庞大,查询非常慢,需要几十秒或者几分钟才能完成查询,这样严重导致 外部数据库 查询不出来,最后经过测试,外部数据库的超时时间是15秒, 换成 数据库连接,也是不行,这2种方法,都不能自主设置超时时间。

不经意间,看到 精益模块自带的有个 类_ODBC数据库 ,并且他有设置超时时间的功能,所以,代码就换成类_ODBC数据库,测试成功了,今天呢,分享给大家。

(本文关键词:适用于百度收录,让更多的人解决该问题。sqlserver查询超时,sqlserver数据库连接超时,sqlserver查询慢,外部数据库查询超时,连接外部数据库查询超时,类_ODBC数据库,类_ODBC数据库用法,类_ODBC数据库怎么读取记录,类_ODBC数据库怎么循环读取记录,类_ODBC数据库咋用,类_ODBC数据库设置超时,类_ODBC数据库查询超时,外部数据库设置超时时间,易语言外部数据库,外部数据1超时失败)


另外在分享给大家一个多表查询和as用法的知识点,因为我多年来只会简单的select,也因为这次的研究,才学会了sql高级用法里的一项

  
sql = “select b.code as billcode,c.code,c.name,c.specification,a.quantity,a.InvBarCode,a.priuserdefnvc1,a.priuserdefnvc2,a.createdtime from ST_RDRecord_b as a,ST_RDRecord as b,AA_Inventory as c where a.idRDRecordDTO=b.id and a.idinventory=c.id and a.createdtime between '2021-09-01 00:00:00' and '2021-09-03 23:59:59'”


这是3表联合查询的一个用法,要是以往,我可能需要嵌套循环,取一个数据 在查另外的表,用上面的语句,发现就是快捷。

此次案例数据 来源于 畅捷通T+ ,并根据保密性,将所有数据变动,改成一个案例分享给大家,并且由于畅捷通T+是用的sql数据库, 为了分享给大家,特意将案例数据做成mdb格式

案例里有2种查询方法, 类_ODBC数据库  和 外部数据库


因为只是案例,并且只做了很少的数据在mdb里,所以,查询是非常快的,  但是这个案例主要还是侧重,大型数据查询慢,查询超时,其他方法都实现不了,只能用 类_ODBC数据库 来实现。


另外,类_ODBC数据库 怎么循环读取记录和跳出循环,他本身没有一个非常好的命令,大家可以看我的操作,怎么巧妙利用死循环来读取所有记录


另外,本案例又用到了   超级列表框 同规格内容 合并,并且产量累加的 算法, 我之前分享过一个历程

本案例,代码里都有详细的解释,非常适合初学者


所有源码和mdb会一块打包上传



点我下载 (已有 221 次下载)

引用模块


源码文件名 模块文件名
类_ODBC数据库使用案例.e
精易模块.ec


引用支持库


源码文件名 支持库文件名 支持库标识
类_ODBC数据库使用案例.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
多线程支持库 2.0 5F99C1642A2F4e03850721B4F5D7C3F8
扩展界面支持库一 2.0 27bb20fdd3e145e4bee3db39ddd6e64c
特殊功能支持库 3.1 A512548E76954B6E92C21055517615B0


[错误报告]   上一篇:键盘源码,功能强大,无模块...     下一篇:X86X64驱动注入(E语言调用驱动源码...