医院 中间件

无法预定义语句

我做了这样一个消息流,用computer节点访问SQL数据库.三个节点,MQinput 、MQoutput、computer节点。 SQL数据库中在tempdb数据库中建立数据表T1,运行结果没有出错,但是我自己新建一个数据库:ceshi,然后在数据库ceshi目录下新建表T1,同样的运行部署,却出现错误!!


ESQL 编程是这样写的

CREATE COMPUTE MODULE accessSQLServer2008_Compute
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
  -- CALL CopyMessageHeaders();
  -- CALL CopyEntireMessage();
  
DECLARE R INTEGER 0;
  SET R=SELECT COUNT(*) FROM Database.T1;
  SET OutputRoot = InputRoot;
     SET OutputRoot.XMLNSC.table.records =R;
  RETURN TRUE;
END;
CREATE PROCEDURE CopyMessageHeaders() BEGIN
  DECLARE I INTEGER 1;
  DECLARE J INTEGER;
  SET J = CARDINALITY(InputRoot.*[]);
  WHILE I < J DO
   SET OutputRoot.*[I] = InputRoot.*[I];
   SET I = I + 1;
  END WHILE;
END;
CREATE PROCEDURE CopyEntireMessage() BEGIN
  SET OutputRoot = InputRoot;
END;
END MODULE;


部署后,我运行,却出现这样的错误
ExceptionList
RecoverableException
   File:CHARACTER:F:buildS000_PsrcDataFlowEngineImbDataFlowNode.cpp
   Line:INTEGER:1073
   Function:CHARACTER:ImbDataFlowNode::createExceptionList
   Type:CHARACTER:ComIbmMQInputNode
   Name:CHARACTER:accessSQLServer2008#FCMComposite_1_1
   Label:CHARACTER:accessSQLServer2008.MQInput
   Catalog:CHARACTER:BIPmsgs
   Severity:INTEGER:3
   Number:INTEGER:2230
   Text:CHARACTER:Node throwing exception
   RecoverableException
     File:CHARACTER:F:buildS000_PsrcDataFlowEngineImbComputeNode.cpp
     Line:INTEGER:481
     Function:CHARACTER:ImbComputeNode::evaluate
     Type:CHARACTER:ComIbmComputeNode
     Name:CHARACTER:accessSQLServer2008#FCMComposite_1_3
     Label:CHARACTER:accessSQLServer2008.Compute
     Catalog:CHARACTER:BIPmsgs
     Severity:INTEGER:3
     Number:INTEGER:2230
     Text:CHARACTER:Caught exception and rethrowing
     RecoverableException
       File:CHARACTER:F:buildS000_PsrcDataFlowEngineImbRdlImbRdlStatementGroup.cpp
       Line:INTEGER:595
       Function:CHARACTER:SqlStatementGroup::execute
       Type:CHARACTER:ComIbmComputeNode
       Name:CHARACTER:accessSQLServer2008#FCMComposite_1_3
       Label:CHARACTER:accessSQLServer2008.Compute
       Catalog:CHARACTER:BIPmsgs
       Severity:INTEGER:3
       Number:INTEGER:2488
       Text:CHARACTER:Error detected, rethrowing
       Insert
         Type:INTEGER:5
         Text:CHARACTER:.accessSQLServer2008_Compute.Main
       Insert
         Type:INTEGER:5
         Text:CHARACTER:7.3
       Insert
         Type:INTEGER:5
         Text:CHARACTER:SET R = SELECT COUNT(*) FROM Database.T1 AS T1;
       DatabaseException
         File:CHARACTER:F:buildS000_PsrcDataFlowEngineImbOdbc.cpp
         Line:INTEGER:324
         Function:CHARACTER:ImbOdbcHandle::checkRcInner
         Type:CHARACTER:
         Name:CHARACTER:
         Label:CHARACTER:
         Catalog:CHARACTER:BIPmsgs
         Severity:INTEGER:3
         Number:INTEGER:2321
         Text:CHARACTER:Root SQL exception
         Insert
           Type:INTEGER:2
           Text:CHARACTER:-1
         DatabaseException
           File:CHARACTER:F:buildS000_PsrcDataFlowEngineImbOdbc.cpp
           Line:INTEGER:447
           Function:CHARACTER:ImbOdbcHandle::checkRcInner
           Type:CHARACTER:
           Name:CHARACTER:
           Label:CHARACTER:
           Catalog:CHARACTER:BIPmsgs
           Severity:INTEGER:3
           Number:INTEGER:2322
           Text:CHARACTER:Child SQL exception
           Insert
             Type:INTEGER:5
             Text:CHARACTER:42S02
           Insert
             Type:INTEGER:2
             Text:CHARACTER:208
           Insert
             Type:INTEGER:5
             Text:CHARACTER:[Microsoft][SQL Server Native Client 10.0][SQL Server]对象名 'T1' 无效。
         DatabaseException
           File:CHARACTER:F:buildS000_PsrcDataFlowEngineImbOdbc.cpp
           Line:INTEGER:447
           Function:CHARACTER:ImbOdbcHandle::checkRcInner
           Type:CHARACTER:
           Name:CHARACTER:
           Label:CHARACTER:
           Catalog:CHARACTER:BIPmsgs
           Severity:INTEGER:3
           Number:INTEGER:2322
           Text:CHARACTER:Child SQL exception
           Insert
             Type:INTEGER:5
             Text:CHARACTER:42000
           Insert
             Type:INTEGER:2
             Text:CHARACTER:8180
           Insert
             Type:INTEGER:5
             Text:CHARACTER:[Microsoft][SQL Server Native Client 10.0][SQL Server]无法预定义语句。
参与3

2 同行回答

xuqing11 xuqing11 学生 南方医科大学
回复 2# sangmin214     嗯,是的,不是computer节点的DSN没有设置,是在数据源管理器里面,设置数据源的时候数据库要相应变化,问题解决啦,谢谢!!显示全部
回复 2# sangmin214


    嗯,是的,不是computer节点的DSN没有设置,是在数据源管理器里面,设置数据源的时候数据库要相应变化,问题解决啦,谢谢!! 收起
医院 · 2011-01-19
浏览836
sangmin214 sangmin214 系统工程师 SS
你compute node的DSN设置没?显示全部
你compute node的DSN设置没? 收起
系统集成 · 2011-01-19
浏览867

提问者

xuqing11
学生 南方医科大学
评论25

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2011-01-18
  • 关注会员:1 人
  • 问题浏览:5192
  • 最近回答:2011-01-19
  • X社区推广