初始化使用 .NET 从 MS Access 数据库导入的 ILOG OPL 中的元组

Posted

技术标签:

【中文标题】初始化使用 .NET 从 MS Access 数据库导入的 ILOG OPL 中的元组【英文标题】:Initializing tuples in ILOG OPL imported form a MS Access Database using .NET 【发布时间】:2019-07-09 09:02:39 【问题描述】:

我正在使用此处介绍的 .NET 解决方案将 MS Access 数据库连接到 OPL 模型:

https://github.com/IBMDecisionOptimization/OPL-.net-custom-data-source

这很好用,我正在通过 SQL 从我的数据库中获取所有数据。但是我正在努力初始化元组。 我的 SQL 语句如下所示:

PName SELECT tblProdukte.PName FROM tblProdukte;
tName SELECT tblMaP.tName FROM tblMaP;
Demands SELECT tblProdukte.PName, tblMaP.tName, tblDemand.demDemand
FROM tblProdukte INNER JOIN (tblMaP INNER JOIN tblDemand ON tblMaP.tID = 
tblDemand.demTID) ON tblProdukte.pID = tblDemand.demPID
WHERE (((tblMaP.tName)>0)); 

在 .mod 文件中,我将数据调用如下:

string PName =...;
int tName =...;
tuple DemandType
string PName;
int tName; 
int demDemand;
;
DemandType Demands=...;

此解决方案有效。但我真正想要实现的是像

float Demands [PName][tName] =...;

我尝试了几种不同的方法,包括 IBM 提供的石油示例和运输问题。 我怎样才能以这种精确的方式实现索引?

提前致谢!

【问题讨论】:

【参考方案1】:

由于您已经有一些工作可以获取所需数据,因此一种选择是仅转换此数据。例如,你可以这样写:

float DemandsAsTable[p in PName][t in tName] = sum(d in Demands : d.PName == p && d.tName == t) d.demDemand;

(请注意,每个总和将恰好相加一个术语)。

【讨论】:

以上是关于初始化使用 .NET 从 MS Access 数据库导入的 ILOG OPL 中的元组的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET - VB.NET - 从 MS-Access 数据库中检索记录

如何在 VB.net 中使用 ROWNUM 从 MS-Access 数据库中检索数据

寻求代码设计建议:使用 VB.Net 和 Ms-Access

从 C#.NET 应用程序调用 MS Access 中的 VBA 代码

从 MS Access 批量导入并插入 Sql Server [关闭]

如何使用 vb.net 从 MS Access DB 表单中找出 Activex 控件