मैं एक्स ++ से सीधे एसक्यूएल के माध्यम से संग्रहीत प्रक्रिया को कॉल कर रहा हूं, और मैं यह नहीं समझ सकता कि इससे पूर्णांक वापसी मूल्य कैसे प्राप्त करें। 0 अच्छा है, -1 खराब है।किसी संग्रहीत प्रक्रिया में प्रत्यक्ष SQL कॉल के परिणाम कैसे प्राप्त करें?
// Login to SQL DB
loginProperty = new LoginProperty();
loginProperty.setServer('localhost');
loginProperty.setDatabase('SQL_DB');
odbcConnection = new OdbcConnection(loginProperty);
statement = odbcConnection.createStatement();
/*
@in_customer_id INT
,@status INT
,@dlvmode NVARCHAR(25)
,@dlvmodedesc NVARCHAR(50)
,@tracking_id NVARCHAR(50)
,@note NVARCHAR(MAX)
,@modified SMALLDATETIME = null
,@override_email NVARCHAR(200) = null
*/
sqlStatement = strfmt(' EXEC pr_send_status_email ' +
' %1,' + // CustomerId
' %2,' + // Status
' %3,' + // DlvMode
' %4,' + // DlvMode description
' %5,' + // Tracking #
' %6,' + // Note
' %7' // DateTime
, 160308
, 2
, sqlSystem.sqlLiteral("FD1")
, sqlSystem.sqlLiteral("Fed Ex overnight")
, sqlSystem.sqlLiteral("1ZABCDEF")
, sqlSystem.sqlLiteral("Note Here")
, sqlSystem.sqlLiteral(DateTimeUtil::utcNow()));
sqlStatementExecutePermission = new SqlStatementExecutePermission(sqlStatement);
sqlStatementExecutePermission.assert();
//BP deviation documented
resultSet = statement.executeQuery(sqlStatement);
//info(strfmt("%1", statement.executeUpdate(sqlStatement))); // I Tried this too
CodeAccessPermission::revertAssert();
if (resultSet.next()) // Errors here
info(strfmt("Return: %1", resultSet.getInt(1)));
क्या आप यह निर्धारित करने की कोशिश कर रहे हैं कि कोई रिकॉर्ड है या नहीं? –
मैं कह रहा हूं कि अगर @ स्टैटस इन नहीं (3,4,5) रिटर्न -1 - क्वारंटाइन, प्राप्त, चालान 'तो यदि कोई खराब स्थिति बीत जाती है, तो मैं त्रुटि कोड वापस भेज सकता हूं। -2 ईमेल नहीं मिलेगा या कुछ नहीं होगा। –