Hi
Microsoft SQL Server 2000 - 8.00.760 (Intel X86)
Dec 17 2002 14:22:05 Copyright (c) 1988-2003
Microsoft Corporation Desktop Engine on Windows NT 5.1 (Build 2600: Dodatek
Service Pack. 1)
and MDAC2.8, VC7
--------------------------------------------------------------------------
CREATE PROCEDURE [dbo].[OutputParams]
@InputParam char(20) ,
@OutputParam char(20) = '' OUTPUT
As
SELECT @OutputParam = @InputParam
RETURN 19
GO
--------------------------------------------------------------------------
StoredProcedure :: CRecordset()
void StoredProcedure::DoFieldExchange(CFieldExchange* pFX)
{
//{{AFX_FIELD_MAP(StoredProcedure)
//}}AFX_FIELD_MAP
pFX->SetFieldType(CFieldExchange::outputParam);
RFX_Long(pFX, "RETURN_VALUE", m_retRETURN_VALUE);
pFX->SetFieldType(CFieldExchange::inputParam);
RFX_Text(pFX, "InputParam", m_paramInputParam,255);
pFX->SetFieldType(CFieldExchange::inoutParam);
RFX_Text(pFX, "OutputParam", m_paramOutputParam,255);
//or RFX_TextOut(pFX, "OutputParam", m_paramOutputParam,255,SQL_CHAR,0);
//http://www.codeguru.com/Cpp/data/mfc_database/storedprocedures/article.php
/c1167/
}
--------------------------------------------------------------------------
db.Open(NULL, FALSE, FALSE, _T(csDSN));
StoredProcedure rs(&db);
rs.m_paramInputParam="nyiuy";
rs.m_paramOutputParam="";
rs.m_retRETURN_VALUE=0;
rs.Open(CRecordset::forwardOnly, _T("{? = CALL OutputParams(?,?)}"),
CRecordset::readOnly);
while( rs.FlushResultSet())
{
while (!rs.IsEOF())
{
rs.MoveNext();
}
}
CString s2,s1;
s1.Format("str=%i : ",rs.m_retRETURN_VALUE); // Display the output parameter
value
s2 = rs.m_paramOutputParam;
AfxMessageBox(s1+":"+s2);
--------------------------------------------------------------------------
Show "19:" s2=NULL whay?
if
@OutputParam char(20) = '' OUTPUT ---> @OutputParam int = 0 OUTPUT
is work
else does't work
plz help??