0
我試圖調用外部存儲過程(調用RPG程序)。我不斷收到以下錯誤:執行DB2外部存儲過程的問題
"Exception Details: IBM.Data.DB2.iSeries.iDB2SQLErrorException: SQL0104 Token @SSN was not valid. Valid tokens: :."
這裏是我的代碼:
using (iDB2Connection conn = new iDB2Connection(_CONNSTRING))
{
conn.Open();
string sqlStatement = "MPRLIB.SIGNTIMESHEET (@SSN, @SIGNATURE, @WORKSTATION, @TOTALHOURS, @COMMENT)";
//string sqlStatement = "MPRLIB.SIGNTIMESHEET (?, ?, ?, ?, ?)";
iDB2Command cmd = conn.CreateCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = sqlStatement;
cmd.Parameters.Add("@SSN", timesheet.EmployeeUniqueKey.ToString("0000000000"));
cmd.Parameters.Add("@SIGNATURE", timesheet.EmployeeTypedName);
cmd.Parameters.Add("@WORKSTATION", timesheet.EmployeeSignedComputer);
cmd.Parameters.Add("@TOTALHOURS", GetJobHoursTotal(timesheet.Id).ToString("00000.000").Replace(".", ""));
cmd.Parameters.Add("@COMMENT", timesheet.EmployeeComments);
cmd.ExecuteNonQuery();
conn.Close();
}
我似乎無法弄清楚發生了什麼或者爲什麼我收到上述錯誤。我的連接字符串看起來像:
private const string _CONNSTRING = "DataSource=192.168.50.200;DefaultCollection=QMFILES;Naming=sql;UserID=XXX;Password=XXX;";
它可能是庫列表問題?該程序只引用庫列表中的一個文件。有什麼建議麼?
該問題的SQLStatement應該已經排除了PARMS。你的帖子讓我朝着正確的方向前進。感謝幫助! – 2010-07-06 19:29:48
您也可以查看這篇文章:http://www.netsplore.com/PublicPortal/blog.aspx?EntryID=30 – 2010-07-06 19:30:09
作爲一個值得注意的事情,即使您已經將它包裝在使用中聲明IBM提供的某些DB2 .NET程序集版本即使封閉在using塊中也沒有正確關閉連接。 – kd7 2010-07-06 19:37:59