DynamicsAX -根据表名获取SQL语句
本文关键字:获取 SQL 语句 -根 DynamicsAX | 更新日期: 2023-09-27 18:16:31
我想在AX2012中创建一个类,我可以从AX2012业务连接器调用它,它允许我为指定的表生成SQL语句。
我在类中实现的方法是:client server public static str getTableStatement(str tableName)
{
OMInternalOrganization org;
select generateOnly org;
info(org.getSQLStatement());
return org.getSQLStatement();
}
我的问题是:我现在如何使用参数tableName而不是OMInternalOrganization的静态分配。
找到另一种获取SQL语句的方法也很好。
我是一个。net开发人员,几乎没有任何x++开发经验。
谢谢你的帮助!
您可以使用SysDictTable::makeRecord
。
client server public static str getTableStatement(str tableName)
{
Common buffer;
;
buffer = SysDictTable::newName(tableName).makeRecord();
select generateOnly buffer;
info(buffer.getSQLStatement());
return buffer.getSQLStatement();
}
如果不需要表字段列表,可以使用以下代码:
client server public static str getTableStatement(str _tableName)
{
SysDictTable dt = SysDictTable::newName(_tableName);
str ret;
if (dt)
{
ret = strFmt('SELECT * FROM %1', dt.name(DbBackend::Sql));
}
return ret;
}
注:如果您只对SQL Server(而不是AX)中的表名感兴趣,则可以修改代码。