ID: 21042 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Open +Status: Bogus Bug Type: ODBC related Operating System: Windows NT 4.0 PHP Version: 4.3.0RC3 New Comment:
please read the options on using odbc_connect() and setting cursors for more information on how to work around this. Technically a MEMO field is not a valid field for ODBC v2, and as such is not supported by PHP. The truth is you can hack around it using the cursor settings in the odbc_connect. Good luck. Not a bug. Previous Comments: ------------------------------------------------------------------------ [2002-12-16 06:10:00] [EMAIL PROTECTED] Trying to read MS Access MEMO fields (these are large (>255 chrs) text fields) fails under 4.3.0RC3 in an Eval'd string whereas they work fine under 4.2.3. The error message returned is: Warning: SQL error: [Microsoft][ODBC Microsoft Access 97 Driver]Invalid cursor position; no keyset defined , SQL state S1109 in SQLGetData in c:\InetPub\php\classes\member.php(91) : eval()'d code on line 1 Below is an example of code that causes the problem. The $xFields var is a CSV list of fields in a table. If only the details field is a MEMO type then only this will fail. All other types of field (string or numeric) do not appear to have a problem. The error line will point to the line containing the 'eval' function call. ################CODE################## $xFields = "ref,name,details"; function coreLoad ($cur) { global $xFields; $flds = explode (",", $xFields); for ($i = 0; $i < sizeof ($flds); $i++) { $str = '$this->' . $flds [$i] . ' = odbc_result ($cur, ' . ($i + 1) . ');'; eval ($str); } } ################END OF CODE############## The connection to the MS Access database is through a standard ODBC connection via the Windows Control Panel. No other modules have been compiled into PHP either in 4.2.3 or 4.3.0RC3. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=21042&edit=1