EXTENSION("pdo_dblib", "pdo_dblib.c dblib_driver.c dblib_stmt.c", null, "",
PDO_DBLIB_FLAVOUR == "freetds" ? "php_pdo_sybase.dll" : "php_pdo_mssql.dll");
if (PDO_DBLIB_FLAVOUR != "freetds") {
- ADD_FLAG("CFLAGS_PDO_DBLIB", "/DDBNTWIN32=1 /DMSSQL" + PDO_DBLIB_FLAVOUR + "0=1 /DMSSQL_VERSION \\\"" + PDO_DBLIB_FLAVOUR + ".0\\\"");
+ ADD_FLAG("CFLAGS_PDO_DBLIB", "/DPHP_DBLIB_IS_MSSQL=1 /DDBNTWIN32=1 /DMSSQL" + PDO_DBLIB_FLAVOUR + "0=1 /DMSSQL_VERSION=\\\"" + PDO_DBLIB_FLAVOUR + ".0\\\"");
AC_DEFINE("PDO_DBLIB_IS_MSSQL", PDO_DBLIB_FLAVOUR, "Have MSSQL support");
- PDO_DBLIB_FLAVOUR = "MSSQL " + PDO_DBLIB_FLAVOUR;
+ PDO_DBLIB_FLAVOUR = "MSSQL_" + PDO_DBLIB_FLAVOUR;
}
- ADD_FLAG('CFLAGS_PDO_DBLIB', "/I ..\\pecl /D PDO_DBLIB_FLAVOUR=\\\"" + PDO_DBLIB_FLAVOUR + "\\\"");
+ ADD_FLAG('CFLAGS_PDO_DBLIB', "/I pecl /I ..\\pecl /D PDO_DBLIB_FLAVOUR=\\\"" + PDO_DBLIB_FLAVOUR + "\\\"");
}
ADD_EXTENSION_DEP('pdo_dblib', 'pdo');
}
if (dbh->password) {
DBSETLPWD(H->login, dbh->password);
}
+
+#if !PHP_DBLIB_IS_MSSQL
if (vars[0].optval) {
DBSETLCHARSET(H->login, vars[0].optval);
}
+#endif
+
DBSETLAPP(H->login, vars[1].optval);
+#if PHP_DBLIB_IS_MSSQL
+ dbprocerrhandle(H->login, (EHANDLEFUNC) error_handler);
+ dbprocmsghandle(H->login, (MHANDLEFUNC) msg_handler);
+#endif
+
H->link = dbopen(H->login, vars[2].optval);
if (H->link == NULL) {
break;
default:
- if (dbwillconvert(S->cols[i].coltype, SYBCHAR)) {
+ if (dbwillconvert(S->cols[i].coltype, SQLCHAR)) {
val->len = 32 + (2 * dbdatlen(H->link, i+1));
val->data = emalloc(val->len);
ZEND_GET_MODULE(pdo_dblib)
#endif
-static int error_handler(DBPROCESS *dbproc, int severity, int dberr,
+int error_handler(DBPROCESS *dbproc, int severity, int dberr,
int oserr, char *dberrstr, char *oserrstr)
{
pdo_dblib_err *einfo;
return INT_CANCEL;
}
-static int msg_handler(DBPROCESS *dbproc, DBINT msgno, int msgstate,
+int msg_handler(DBPROCESS *dbproc, DBINT msgno, int msgstate,
int severity, char *msgtext, char *srvname, char *procname, DBUSMALLINT line)
{
pdo_dblib_err *einfo;
# define DBMSGHANDLE(a, b) dbprocmsghandle(a, b)
# define EHANDLEFUNC DBERRHANDLE_PROC
# define MHANDLEFUNC DBMSGHANDLE_PROC
-# define DBSETOPT(a, b, b) dbsetopt(a, b, c)
+# define DBSETOPT(a, b, c) dbsetopt(a, b, c)
+# define SYBESMSG SQLESMSG
+# define SYBESEOF SQLESEOF
+# define SYBEFCON SQLECONN // SQLEFCON does not exist in MS SQL Server.
+# define SYBEMEM SQLEMEM
+# define SYBEPWD SQLEPWD
#else
# include <sybfront.h>
typedef float DBFLT4;
#endif
+int error_handler(DBPROCESS *dbproc, int severity, int dberr,
+ int oserr, char *dberrstr, char *oserrstr);
+
+int msg_handler(DBPROCESS *dbproc, DBINT msgno, int msgstate,
+ int severity, char *msgtext, char *srvname, char *procname, DBUSMALLINT line);
+
extern pdo_driver_t pdo_dblib_driver;
extern struct pdo_stmt_methods dblib_stmt_methods;