| PRB: Invalid Precision Value Err w/ Character Field ParametersLast reviewed: July 31, 1997Article ID: Q132960 | 
| The information in this article applies to: 
 
 SYMPTOMSParameterizing a recordset using one or more character fields may result in an error message similar to the following being returned by an ODBC driver: 
 Invalid precision value State:S1104,Native:76,Origin:[Microsoft][ODBC dBase Driver] CAUSEIf an application does not specify the maximum length of a character field parameter in the recordset's DoFieldExchange() function, a default value of 255 is used. Some data sources have a maximum character field length of less than 255. 
 RESOLUTIONTo resolve this issue, include a fourth parameter in the RFX_Text() function call equal to the size of the character field that is being bound. For example, to bind a parameter to an eight-character field in a database, call the RFX_Text() function as follows: 
 pFX->SetFieldType(CFieldExchange::param); RFX_Text(pFX, "FIELD1Param", m_strFIELD1Param, 8); MORE INFORMATIONThe exception being thrown is generated in the RFX_Text() function by the following code: 
    AFX_SQL_SYNC(::SQLBindParameter(pFX->m_hstmt, (UWORD)nField,
   SQL_PARAM_INPUT, SQL_C_CHAR,
               (SWORD)nColumnType,
               nMaxLength, 0, pvParam, 0, plLength));
The ODBC Programmer’s Reference states the following for the
SQLBindParameter() S1104 error:
 S1104 - Invalid precision value The value specified for the argument cbColDef was outside the range of values supported by the data source for a column of the SQL data type specified by the fSqlType argument.If no nMaxLength is passed into the RFX_Text(), nMaxLength defaults to 255. If the data source does not support text fields of 255, the S1104 error occurs. The Microsoft dBASE and FoxPro drivers, for example, have a maximum character field length of 254. They exhibit the behavior described in this article. 
 REFERENCESFor more information, please see SQLBindParameter in the ODBC 2.x Programmer's Reference. Keywords : MfcDatabase kberrmsg kbinterop Technology : kbMfc Version : 1.5 1.51 1.52 1.52a 1.52b 2.0 Platform : NT WINDOWS Issue type : kbprb | 
| ================================================================================ 
 © 1998 Microsoft Corporation. All rights reserved. Terms of Use. |