ID: 9869
Updated by: ahill
Status: Assigned
Bug Type: ODBC related
Assigned To: 


What version of the OpenLink drivers are you using?  The problem here is
most likely due to the fact that you're still running Release 3.2 of
OpenLink.  The reason Perl works and PHP doesn't is because PHP 4 opens
select statements on server-side dynamic cursors by default.  OpenLink 3.2
did not handle this functionality as it should have.  You don't really need
this type of cursor, and if you don't want to upgrade OpenLink, we suggest
you disable dynamic cursor functionality in PHP by commenting out all lines
like this:
in all the PHP include files for ODBC.  Of course, this assumes the problem
is happening *after* the query has been executed in your code.

Otherwise, an upgrade to OpenLink release 4.0 drivers would be recommended.

On a related note, one thing we had requested from the PHP development
community was the ability to use the "odbc_setoption" function to modify the
ODBC cursor type *before* the preparation of a query.  (I.e. Remove the
necessity to create a $result type object prior to changing the cursor type
of the statement.)  This would help in cases where Preparing or Executing
the query is causing database-specific errors because of the dynamic cursor

OpenLink Software

Previous Comments:

[2001-03-26 17:05:25] [EMAIL PROTECTED]
working on something similar already for some of the other bug reports... guess i can 
tack this onto the pile as well..


[2001-03-20 08:51:49] [EMAIL PROTECTED]
I am unable to use PHP/Openlink ODBC to get specific rows based on my SELECT statement 
form a MS Access 97 db.  I can use PHP/Openlink just fine while accessing an Informix 
db hosted on a SCO box.  I can also use Perl/DBI:DBD:ODBC to get the rows I need from 
this Access db, so I'm guessing this is a PHP bug.  Here is a snipet of the code I 

putenv( "ODBCINI=/usr/local/openlink/bin/odbc.ini" );
putenv( "ODBCHOME=/usr/local/openlink" );
putenv( "ODBCINST=/usr/local/openlink/bin/odbcinst.ini");

$conn = odbc_connect("DSN=ink","","", SQL_CUR_USE_ODBC);
$sql = "SELECT DISTINCT * FROM ComponentUse WHERE Code = 'CX145' ";
$cur = odbc_exec($conn, $sql);

// This section of code displayes the tables in the db fine.
$tablelist = odbc_tables($conn);
while (odbc_fetch_row($tablelist)) {
echo odbc_result_all($tablelist);

// This section of code does not work - dies with "Driver not capable"
while (odbc_fetch_row($cur)){
$code = odbc_result($cur, "code");
printf ("Code: $coden");

The code will display the table list just fine, but I get the following error from the 
odbc_exec statement:

Warning: SQL error: [OpenLink][ODBC][Driver]Driver not capable, SQL state S1C00 in 
SQLExecDirect in
/home/httpd/html/ink/dispenser/comp_use.php on line 23

Like I said, I can use Perl/DBD just fine to get the rows I want with that select 
statement, so this must be a PHP bug?

Thanks for any help.  I really would like to write this application in PHP, since I'm 
not too proficient in Perl. 


ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at

PHP Development Mailing List <>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to