2016-11-30 54 views
0

我有一个PID-2的源转换,我需要填充外部ID。但是,此ID位于另一台服务器上的另一个SQL Server数据库表上。有没有我可以检索和填充此字段的代码。欢乐连接PID-2

我有这个,但我知道有更多的事情需要做:

var strConn = "driver={sql server};server=servername;database=database;uid=us ername;password=password"; 
var strQuery = "SELECT INTERNALID FROM EXTID where msg['record_number'].toString() = INTERNALID"; 

var cnt = result.size(); //get the number of rows returned in the query 
for (i = 0; i < cnt; i++) 

{  //loop it up 
    result.next();  //go to the first row 

    var INTERNALID = result.getString(1); 
} 

什么我试图做的是追加PID-2的目标HL7文件,其中主机服务器上record_number等于记录在外部sql服务器上的号码。 我的结果应该插入到tmp ['PID'] ['PID.2'] ['PID.2.1']

因此,代码应该查看PID-3中的“record_number”并获取相应的ID (INTERNALID)在SQL服务器上并附加到我的目标文件上的PID-2。

回答

0

您需要创建一个DatabaseConnection对象来执行您的查询并获取您的结果。

var dbConn = DatabaseConnectionFactory.createDatabaseConnection('driver', 'address', 'username', 'password'); 

然后,您可以执行参数数据库查询,像这样

var paramList = new java.util.ArrayList(); 
paramList.add(msg['PID']['PID.3']['PID.3.1'].toString()); 
var expression = "SELECT internal_id FROM your_table WHERE record_number = ?"; 
result = dbConn.executeCachedQuery('expression', paramList); 

从那里,如果你只是想抓住的第一行,那么你可以做以下

if (result.next()) { 
    var internalID = result.getString(1); 
} 

我对你的专栏名称等做了一些假设,但工作流应该类似