大家好,最近在研究公司里的畅捷通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会一块打包上传