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 ...
随机推荐
- 18.SQLite应用案例-课程表
一.程序界面 1.课程表首页 一周有7天,一天有10节课. 课程表首页的布局activity_main.xml框架设计大致如此: 最外层使用线性布局设置屏幕水平方向android:orientatio ...
- VMware导入ovf报错
如下图所示报错 在网上查找了一些解决方案,大都说是ovftool版本兼容问题,但是我这里好像并不行,最后的解决的办法是对导入的位置默认不做改动. 报错原因:改变了默认路径.
- python学习——set集合,sorted函数
题目: 输入a,b班的名单,并进行如下统计. 输入格式: 第1行::a班名单,一串字符串,每个字符代表一个学生,无空格,可能有重复字符.第2行::b班名单,一串字符串,每个学生名称以1个或多个空格分隔 ...
- jekins 入门
环境安装 gitlab 安装 使用 docker 安装 gitlab docker run -d --name gitlab --restart always --hostname gitlab.zd ...
- create_base_x.txt
create table g_temp.test_base( field_date date, field_str varchar(100) , field_int integer ) drop ta ...
- [Nginx]status:203 Failed to start The NGINX HTTP and reverse proxy server
怎么感觉Linux的nGinx比Win的事一个一个一个的多啊(半恼) 运行systemctl status nginx时提示: ① Process: 123456 ExecStartPre=/usr/ ...
- 3516A调试
最近在调Hi3516A的板,硬件不知道为什么如此设计,用一片16bit4G的ddr,16Mspi flash,按理如果是A应该是2片16bit的ddr,组成32位总线,现在怕是只能当D来用了,编译成功 ...
- oracle 分配权限命令
Oracle分配权限 以管理员身份登录数据库 创建用户:create user [username] identified by [password]; 赋予登录权限:grant create ses ...
- html入門 如何 區別行級元素 和 塊級元素
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 读后笔记 -- Java核心技术(第11版 卷 II ) Chapter1 Java 8 的流库
1.1 从迭代到流的操作 迭代:for, while 流:stream().优点:1)代码易读:2)性能优化 public class CountingLongWords { public stati ...