DB2DataAdapter.Fill(dataset)抛出错误“SQL0901N(Reason”CPF4273“。)SQLSTATE = 58004”

时间:2011-10-14 11:48:27

标签: db2 dataadapter

我的应用程序是基于Dot Net的。我正在使用VS我的应用程序在其后端使用IBm DB2。 我的查询是

SELECT A, B FROM SERVER.D WHERE A IN 
    (SELECT C FROM SERVER.E WHERE X = '01OBPP' AND Y= 'U' AND Z= '1')

A,B,C,X,Y,Z列名称,服务器 - 服务器名称,D和电子名称

PFB代码 -

DB2DataAdapter dbAdapter = null;
DB2Connection dbConn = null;
DB2Command dbCommand;
DataSet dsReturnDataSet  ;              
dbConn = new DB2Connection(connectionString);
if (dbConn.State == ConnectionState.Closed) dbConn.Open();
dsReturnDataSet.Clear();

dbCommand = GetCommand();
dbCommand.CommandText = queryString;
dbCommand.Connection = dbConn;
dbAdapter = new DB2DataAdapter((DB2Command)dbCommand);
dbAdapter.Fill(dsReturnDataSet);
return dsReturnDataSet;

GetCommand()方法具有以下语句

DB2Command dbCommand; 
dbCommand = null;
dbCommand = new DB2Command();
dbCommand.CommandType = CommandType.Text;
dbCommand.CommandTimeout = 30;
return dbCommand;

当它遇到'dbAdapter.Fill(dsReturnDataSet);'时它在那里停留了很长时间,然后抛出错误

  

“ERROR [58004] [IBM] [AS] SQL0901N SQL语句因为失败而失败   非严重的系统错误。可以处理后续的SQL语句。   (原因“CPF4273”。)SQLSTATE = 58004“

请提供一些指示。 如果有人可以提出解决此错误的方法,我将非常感激。

1 个答案:

答案 0 :(得分:1)

检查数据库日志。实例的db2diag.log目录下的db2dump目录中应该有一个sqllib文件。在此文件中搜索上述错误,它应包含它引用的根本原因(非严重系统错误)。