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 ...
随机推荐
- JAVA学习笔记-08
package: 对类文件进行分类管理 给类提供多层命令空间 写在程序文件第一行,包名全部字母小写 类名的全称是 包名.类名 包也是一种封装形式. 包与包之间的访问: 包与包之间进行访问,被访问的包 ...
- 雪花算法生成ID重复问题
转载自: https://www.jianshu.com/p/71286e89e0c5
- Linux上的I2C基础知识
Linux上的I2C基础知识 什么是I2C I2C(Inter-Integrated Circuit,eye-squared-C),也称为 I2C 或 IIC,是一种同步.多控制器/多目标(主/从). ...
- ts(typescript)讲解for , for...in..., for...of..., while, every, some, map, filter
for 一般用于已知循环次数 var num:number = 5; var i:number; var factorial = 1; for(i = num;i>=1;i--) { fact ...
- Idea Diff工具介绍
背景 项目中有大量的数据对比工作,需要生成文件,与旧文件进行对比,自动化对比和手工对比验证,自动化对比采用java-diff工具类或者手动去除换行空格注释,进行字符串对比,手动化对比可以采用git d ...
- tensorboard 2.0可视化 —浏览器中输入http://ip:6006 - 无法访问此网站——有效解决
https://blog.csdn.net/sinat_28442665/article/details/108975276
- mybatis-关联查询4-多对多查询
三张表的关联查询
- ORACLE之自治事务
在创建存储过程时,可以用关键字: PRAGMA AUTONOMOUS_TRANSACTION 创建自治事务. 常用场景: 触发器抛错导致事务回滚,日志的记录需要用自治事务进行记录 代码抛错,导致数据库 ...
- shell转义字符
\n 回车 \b 单词边界 \w [a-Z0-9]中任意一个字符 \W [^a-Z0-9] \d [0-9]中任意一个数字 \D [^0-9 ...
- Promise的几个方法解析
Promise.all 此方法在集合多个 promise 的返回结果时很有用. 输入的promise中只要有一个reject,即进入reject,否则会进入then 完成(Fulfillment):在 ...