PRB: DAO SetParamValue Limited to 255 CharactersLast reviewed: August 7, 1997Article ID: Q168447 |
The information in this article applies to:
SYMPTOMSThe execution of a query following a call to CDaoQueryDef::SetParamValue() results in an error similar to the following:
DAO Call Failed. m_pDAOQueryDef->Execute(COleVariant((long)nOptions)) In file daocore.cpp on line 2880 scode = 800A0BC9 Error Code = 3017 Source = DAO.QueryDef Description = The size of a field is too long. CAUSEParameter values are limited to 255 characters.
RESOLUTIONDo not call SetParamValue with a value that contains more than 255 characters. If you need to update or insert a record that does contain long data, use a recordset rather than a querydef.
MORE INFORMATIONDAO and the Jet Engine restrict parameter values to 255 characters or less; this is not a limitation of the MFC DAO classes.
Sample Code
/* Compile options needed: none */ CDaoDatabase db; CDaoQueryDef query( &db ); int idx; CByteArray blob; const int SIZE = 255; // Execute will succeed if 255, fail if 256 try { db.Open( "C:\\DB1.mdb" ); query.Open( "Query1" ); query.SetParamValue( "theID", COleVariant( (long)1, VT_I4 ) ); blob.SetSize( SIZE ); for( idx = 0; idx < SIZE; ++idx ) blob.SetAt( idx, (BYTE)idx ); query.SetParamValue( "theBlob", COleVariant( blob ) ); query.Execute(); } catch( CDaoException* e ) { AfxMessageBox( e->m_pErrorInfo->m_strDescription, MB_ICONEXCLAMATION ); e->Delete(); } query.Close(); db.Close(); Keywords : MfcDAO kbprb Technology : kbMfc Version : 4.0 4.1 4.2 5.0 Platform : NT WINDOWS |
================================================================================
© 1998 Microsoft Corporation. All rights reserved. Terms of Use. |