我需要使用参数来完成DSS查询中表名的一部分。 例如:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;
namespace ConsoleApplication29
{
class Program
{
static void Main(string[] args)
{
var ExportModelMachetas = new object[][] {
new object[] { "ufImportProduesPrioritateXContactare", "IdArticol", "string", "1"},
new object[] { "ufImportProduesPrioritateXContactare", "Prioritate", "string", "2"},
new object[] { "ufImportExcelCaracteristiciUtilizatorXContactare", "IdUtilizator", "string", "1"},
new object[] { "ufImportExcelCaracteristiciUtilizatorXContactare", "IdLocatie", "string", "2"},
new object[] { "ufImportExcelCaracteristiciUtilizatorXContactare", "TipUtilizator", "string", "3"}
};
List<XElement> results = ToXML(ExportModelMachetas);
}
static List<XElement> ToXML(object[][] ExportModelMachetas)
{
List<XElement> results = new List<XElement>();
foreach (var ExportModelMacheta in ExportModelMachetas)
{
XElement newExportModelMacheta = new XElement("ExportModelMacheta", new object[] {
new XAttribute("Macheta", ExportModelMacheta[0]),
new XAttribute("NumeColoana", ExportModelMacheta[2]),
new XAttribute("TipDeDate", ExportModelMacheta[2]),
new XAttribute("Pozitie", ExportModelMacheta[3]),
new XAttribute("FromatMacheta", "xls"),
});
results.Add(newExportModelMacheta);
}
return results;
}
}
}
其中SELECT .... FROM prefix_<env>tablename;
可以是<env>
之类的参数。
在某些系统(如SpagoBI)中,可以使用以下环境参数完成此操作:
QUERY_STRING
并且在查询参数替换期间,表名将被解析为SELECT .... FROM prefix_{env}tablename;
(在env = 001的情况下)。
在DSS中,我只有绑定参数语法(prefix_001tablename
),因为没有确切的令牌标识(:env
)而无法使用。
我看一下代码(ExpressionQuery.java),但我找不到任何方法来解决这个问题。
重要信息:我没有办法改变表命名(我需要与第三方数据库进行交互)。
任何人都可以帮助我吗? 谢谢!
答案 0 :(得分:0)
如果我正确理解了这个问题,我想问题是,你不能映射一个名为&#34; env&#34;的命名参数。查询&#34;前缀_:envtablename&#34;,其中只有:env应该被翻译。所以我们在这里可以做的是&#34;?&#34;在查询中,使其成为QUERY_STRING类型参数。所以理想情况下你应该有&#34; prefix_?tablename&#34;这样的查询。有了这个,你可以按顺序传递参数吗?查询中提到了字符。
干杯, 长香。