In the attached patches I fixed a bug when using the mssql extension with FreeTDS and deactivated datetimeconvert. FreeTDS returns the month starting with 0 (=jan), but the MSoft-lib starts with 1.
I added another php.ini switch (datetimemsec) for adding milliseconds to datetime-values when datetimeconvert is deactivated. This was a user request, because he has otherwise no chance to get the milliseconds back from the db.
I hope that these patches are good enough for a commit,
thanx, bye, -- ------------------------------- ------------------------------------- Michael Bretterklieber - [EMAIL PROTECTED] JAWA Management Software GmbH - http://www.jawa.at Liebenauer Hauptstr. 200 -------------- privat --------------- A-8041 GRAZ GSM: ++43-(0)676-93 96 698 Tel: ++43-(0)316-403274-12 E-mail: [EMAIL PROTECTED] Fax: ++43-(0)316-403274-10 http://www.bretterklieber.com ------------------------------- ------------------------------------- "...the number of UNIX installations has grown to 10, with more expected..." - Dennis Ritchie and Ken Thompson, June 1972
Index: php_mssql.c
===================================================================
RCS file: /repository/php4/ext/mssql/php_mssql.c,v
retrieving revision 1.86.2.15
diff -u -r1.86.2.15 php_mssql.c
--- php_mssql.c 11 Feb 2003 01:23:49 -0000 1.86.2.15
+++ php_mssql.c 2 Mar 2003 14:28:56 -0000
@@ -137,6 +137,7 @@
STD_PHP_INI_ENTRY_EX("mssql.textlimit", "-1",
PHP_INI_ALL, OnUpdateInt, textlimit,
zend_mssql_globals, mssql_globals, display_text_size)
STD_PHP_INI_ENTRY_EX("mssql.batchsize", "0",
PHP_INI_ALL, OnUpdateInt, batchsize,
zend_mssql_globals, mssql_globals, display_link_numbers)
STD_PHP_INI_BOOLEAN("mssql.datetimeconvert", "1", PHP_INI_ALL,
OnUpdateBool, datetimeconvert, zend_mssql_globals,
mssql_globals)
+ STD_PHP_INI_BOOLEAN("mssql.datetimemsec", "0",
PHP_INI_ALL, OnUpdateBool, datetimemsec,
zend_mssql_globals, mssql_globals)
STD_PHP_INI_BOOLEAN("mssql.secure_connection", "0",
PHP_INI_SYSTEM, OnUpdateBool, secure_connection,
zend_mssql_globals, mssql_globals)
STD_PHP_INI_ENTRY_EX("mssql.max_procs", "25",
PHP_INI_ALL, OnUpdateInt, max_procs,
zend_mssql_globals, mssql_globals, display_link_numbers)
PHP_INI_END()
@@ -839,11 +840,17 @@
dbdatecrack(mssql_ptr->link,
&dateinfo, (DBDATETIME *) dbdata(mssql_ptr->link,offset));
}
- res_length = 19;
- res_buf = (unsigned char *)
emalloc(res_length+1);
+ res_buf = (unsigned char *) emalloc(30);
+#if HAVE_FREETDS
+ dateinfo.month++;
+#endif
sprintf(res_buf, "%d-%02d-%02d %02d:%02d:%02d"
, dateinfo.year, dateinfo.month, dateinfo.day, dateinfo.hour, dateinfo.minute,
dateinfo.second);
+ if (MS_SQL_G(datetimemsec)) {
+ sprintf(&res_buf[strlen(res_buf)],
".%03d", dateinfo.millisecond);
+ }
+ res_length = strlen(res_buf);
}
-
+
Z_STRVAL_P(result) = res_buf;
Z_STRLEN_P(result) = res_length;
Z_TYPE_P(result) = IS_STRING;
@@ -900,9 +907,16 @@
dbdatecrack(mssql_ptr->link, &dateinfo, (DBDATETIME *)
dbdata(mssql_ptr->link,offset));
}
- res_length = 19;
- res_buf = (unsigned char *) emalloc(res_length+1);
+ res_length = 30;
+ res_buf = (unsigned char *) emalloc(res_length);
+#if HAVE_FREETDS
+ dateinfo.month++;
+#endif
sprintf(res_buf, "%d-%02d-%02d %02d:%02d:%02d" ,
dateinfo.year, dateinfo.month, dateinfo.day, dateinfo.hour, dateinfo.minute,
dateinfo.second);
+ if (MS_SQL_G(datetimemsec)) {
+ sprintf(&res_buf[strlen(res_buf)], ".%03d",
dateinfo.millisecond);
+ }
+ res_length = strlen(res_buf);
}
Z_STRVAL_P(result) = res_buf;
Index: php_mssql.h
===================================================================
RCS file: /repository/php4/ext/mssql/php_mssql.h,v
retrieving revision 1.23.4.7
diff -u -r1.23.4.7 php_mssql.h
--- php_mssql.h 9 Feb 2003 07:49:34 -0000 1.23.4.7
+++ php_mssql.h 2 Mar 2003 14:28:57 -0000
@@ -160,7 +160,7 @@
zend_bool compatability_mode;
void (*get_column_content)(mssql_link *mssql_ptr,int offset,pval *result,int
column_type TSRMLS_DC);
long textsize, textlimit, batchsize;
- zend_bool datetimeconvert;
+ zend_bool datetimeconvert, datetimemsec;
HashTable *resource_list, *resource_plist;
zend_bool secure_connection;
long max_procs;-- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php
