I configured a machine with php, pws and open client. Then the php
scripting engine seems working fine. And then I created a file named
"sybase.php" to test the connection between the php, open client and
ASE.
However, the return shows that there is something wrong with the ASE.
Afterward, I searched the manuals.sybase.com almost entirely for an
answer about the error message. But I got nothing, would someone can
help to me to solve it. Thanks.
The following shows that content of the sybase.php
<?php
$connect=sybase_connect("TEST","sa", "") or
die ("Could not connect to the sybase server!");
$selectdb=sybase_select_db("mydb",$connect) or die
("could not select db");
$clssybase=sybase_close($connect) or die
("Cound not close sysbase database server");
?>
The following shows the content of the error message.
Warning: Sybase: Server message: Changed database context to 'master'.
(severity 10, procedure N/A) in D:\Inetpub\wwwroot\cgi-bin\sybase.php on
line 4
PHP has encountered an Access Violation at 01FA03B3
Thomas
mailto:tom...@bigfoot.com
Guessing but I suspect you have the wrong calling convention for the Sybase error message handler and the stack becomes corrupted in the call to the message handler.
The calling convention for openclient called functions is __stdcall.
So the error message handlers are defined like this:
CS_RETCODE CS_PUBLIC client_handlers(... etc ...)
on the NT platfrom CS_PUBLIC is defined : #define CS_PUBLIC __stdcall
This allows you to use whatever calling convention you want in your program but assures that the error handler will be calling properly. Use this calling convention for both the client and the server message callback() functions.
Jay