AX2012 查询后台数据库记录
AX2012 自带的数据库查询功能比较慢(特别是查询删除的情况),有些业务可能需要频繁查询删除人和删除时间等,这种情况下还是用代码来查询比较快。
例:
static void SysDataBaseLog_SalesTableDel(Args _args)
{
SysDataBaseLog sysDataBaseLog;
container tableRecord, tableRecordSel;
container recordInstance;
int idx = 0;
str fieldName,fieldValue_new,fieldValue_old;
SalesId salesId, salesIdDel;
utcDateTime beginDT, endDT;
TableId tableId;
str delby;
utcDateTime delDateTime;
; // return; salesIdDel = "XXXXXXXX"; // 被删除的SalesId
beginDT = 2021-12-20T00:00:00; // 开始时间, 时间范围越精确,查询所需时间越少
endDT = 2021-12-24T00:00:00; // 结束时间
tableId = tableName2id("SalesTable"); // 1. 先根据【SalesId】找出被删的记录
while select sysDataBaseLog
where sysDataBaseLog.table == tableId // Table的RecordId, 自行替换
&& sysDataBaseLog.LogType == DatabaseLogType::Delete // 要查询的数据库日志的类型, 自行替换
&& sysDataBaseLog.createdDateTime > beginDT // 开始时间
&& sysDataBaseLog.createdDateTime < endDT // 结束时间
{
tableRecord = sysDataBaseLog.Data;
if(tableRecordSel != conNull())
{
break;
} for(idx = 1; idx <= conLen(tableRecord); idx++)
{
recordInstance = conpeek(tableRecord, idx); fieldName = conpeek(recordInstance, 1); // container下记录的数据为为【fieldNmae】, 【字段更改前的数据】,【更改后的数据】... if(fieldName == "SalesId")
{
salesId = conpeek(recordInstance, 2); if(salesId == salesIdDel)
{
tableRecordSel = tableRecord;
delby = sysDataBaseLog.createdBy;
delDateTime = DateTimeUtil::applyTimeZoneOffset(sysDataBaseLog.createdDateTime, DateTimeUtil::getUserPreferredTimeZone());
break;
}
else
{ break;
}
}
}
} // 2. 循环读出记录字段
info(strFmt("删除日期和时间: %1", delDateTime));
info(strFmt("删除人: %1", delby));
for(idx = 1; idx <= conLen(tableRecordSel); idx++)
{
recordInstance = conpeek(tableRecordSel, idx); fieldName = conpeek(recordInstance, 1);
if(fieldName == "SalesId")
{
salesId = conpeek(recordInstance, 2);
info(strFmt("销售订单号:%1", salesId));
}
else if(fieldName == "createdBy")
{
info(strFmt("创建人: %1", conpeek(recordInstance, 2)));
}
else if(fieldName == "CreatedDateTime")
{
info(strFmt("创建日期和时间: %1", conpeek(recordInstance, 2)));
}
}
}
AX2012 查询后台数据库记录的更多相关文章
- 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决(转载)
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- 让 Python 的1、数据库查询返回字典记录--- 2、利用zip函数将两个列表(list)组成字典(dict)
让 Python 的数据库查询返回字典记录: https://yanbin.blog/python-database-query-return-dictionary-result/#more-9179 ...
- hibernate连接mysql,查询条件中有中文时,查询结果没有记录,而数据库有符合条件的记录(解决方法)
今天在另一台服务器上重新部署了网站,结果出现了以下问题: ——用hibernate做mysql的数据库连接时,当查询条件中有中文的时候,查询结果没有记录,而数据库中是存在符合条件的记录的. 测试了以下 ...
- 转载:30多条mysql数据库优化方法,千万级数据库记录查询轻松解决
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- MySQL 查询某个数据库中所有包含数据记录的表名
MySQL 查询某个数据库中所有包含数据记录的表名 有时根据实际应用需要,需要对数据进行备份. 如果一个数据库中有很多数据表,但是只想备份包含数据记录的那些表数据(空表不做数据备份). 如果通过如下S ...
- MongoDB数据库,一些的筛选过滤查询操作和db.updae()更新数据库记录遇到的坑。
缘由:使用MongoDB时遇到一些需要查询/更新操作指定某些字段的业务场景 查询和更新指定字段就需要进行简单的筛选和过滤,也能在大数据量时减少查询消耗时间 1. 查询数据库某些指定字段,同时默认返回_ ...
- Spring Security从后台数据库查询实现登陆控制
Spring Security框架是一个控制登陆的框架,通过配置文件获取后台的用户名及密码,进行比较进行登陆判断 使用步骤 1.导入依赖 <!-- 身份验证 --> <depende ...
- ExtJS4.2 根据数据库记录构建树形菜单
背景:最近用ExtJS4.2做一个系统,需要在前端展示资源菜单,为树形结构,该树形结构是从数据库动态加载的. ExtJS的树形结构大致有两种情况: 1.静态树形结构,此处不多说,看API就能简单明白: ...
- 【面经】面试官:如何以最高的效率从MySQL中随机查询一条记录?
写在前面 MySQL数据库在互联网行业使用的比较多,有些小伙伴可能会认为MySQL数据库比较小,存储不了很多的数据.其实,这些小伙伴是真的不了解MySQL.MySQL的小不是说使用MySQL存储的数据 ...
- 11月29日内容总结——SQL注入问题、视图、触发器、事务、存储过程、函数、流程控制、索引、慢查询、数据库三大范式
目录 一.SQL注入问题 SQL注入问题引入 SQL注入概念和解决方案 二.视图 三.触发器 定义 代码 1.触发器命名有一定的规律 2.临时修改SQL语句的结束符 四.事务 事务的四大特性(ACID ...
随机推荐
- Python学习笔记(四)算术运算符
一.算术运算符 运算符 说明 实例 结果 + 加 12.45 + 15 27.45 - 减 4.56 - 0.26 4.3 * 乘 5 * 3.6 18.0 / 除法(和数学中的规则一样) 7 / 2 ...
- java中indexOf()获取指定次数的下标
indexOf() :指定字符在此实例中的第一个匹配项的索引.搜索从指定字符位置开始,并检查指定数量的字符位置 Java中提供了四中查找方法: int indexOf(String str) 返回第一 ...
- c++文件中,头文件与实现文件该写什么内容
1. 参考https://www.cnblogs.com/fenghuan/p/4794514.html
- GIS空间分析和建模复习重点1
1.对空间分析的理解(对概念的理解) 空间分析是为了解答地理空间问题而进行的数据分析与挖掘,是GIS的核心.研究对象为空间目标(具有空间特性(位置,分布,形态,空间关系(距离,方位,拓扑)),属性特性 ...
- params的使用
今天在写vue的JavaScript的时候有个地方需要传很多参数,自己写不出来,求助 我的博博 后拿到神奇代码: 神奇代码中有params,俺自作聪明,以为他是一个json的数据,所以自己改了个名字 ...
- ubuntu 的 apt 命令
工作原理 apt 全称 advanced packaging tool 是 ubuntu 下的包管理工具 apt 采用集中式仓储机制来管理软件,有 软件安装包 和 软件安装列表 两部分完成. 使用 a ...
- 国产DP4344兼容替代CSM4344 192K双通道输出数模转换芯片
DP4344 是一款完整的 2 通道输出数模转换芯片, 内含插值滤波器.Multi-Bit 数模转换器.输出模 拟滤波器,并支持大部分的音频数据格式.DP4344 基于一个带线性模拟低通滤波器的四阶 ...
- (Yocto)Imx8mp的时间结构
1.构成图 #kernel\time\timekeeping.c #drivers\rtc\class.c 1.time date source 解释 rx8010sj: 自己定制的开发板 ...
- idea插件Tranlation配置有道搜索引擎
idea配置有道翻译引擎 一.更换翻译引擎原因 由于Google在2022年9月末宣布关闭GoogleTranslate在中国的服务,原本在chrome浏览器和idea上使用的google翻译引擎也不 ...
- Jenkins拉取GitHub上代码
1.github 生成 Personal Access Token 2.github 设置 GitHub webhooks (具体需要持续集成的项目),新建或者设置现有项目的 webhooks 选项, ...