Bug #20426. Convert SMALLDATETIME correct

This commit is contained in:
Frank M. Kromann 2003-02-11 01:24:07 +00:00
parent 710b20a528
commit 08b788dd44

View file

@ -822,15 +822,22 @@ static void php_mssql_get_column_content_with_type(mssql_link *mssql_ptr,int off
DBDATEREC dateinfo; DBDATEREC dateinfo;
int res_length = dbdatlen(mssql_ptr->link,offset); int res_length = dbdatlen(mssql_ptr->link,offset);
if ((column_type != SQLDATETIME) || MS_SQL_G(datetimeconvert)) { if ((column_type != SQLDATETIME && column_type != SQLDATETIM4) || MS_SQL_G(datetimeconvert)) {
if (column_type == SQLDATETIM4) res_length += 14; if (column_type == SQLDATETIM4) res_length += 14;
if (column_type == SQLDATETIME) res_length += 10; if (column_type == SQLDATETIME) res_length += 10;
res_buf = (unsigned char *) emalloc(res_length+1); res_buf = (unsigned char *) emalloc(res_length+1);
res_length = dbconvert(NULL,coltype(offset),dbdata(mssql_ptr->link,offset), res_length, SQLCHAR,res_buf,-1); res_length = dbconvert(NULL,coltype(offset),dbdata(mssql_ptr->link,offset), res_length, SQLCHAR,res_buf,-1);
} else {
if (column_type == SQLDATETIM4) {
DBDATETIME temp;
dbconvert(NULL, SQLDATETIM4, dbdata(mssql_ptr->link,offset), -1, SQLDATETIME, (LPBYTE) &temp, -1);
dbdatecrack(mssql_ptr->link, &dateinfo, &temp);
} else { } else {
dbdatecrack(mssql_ptr->link, &dateinfo, (DBDATETIME *) dbdata(mssql_ptr->link,offset)); dbdatecrack(mssql_ptr->link, &dateinfo, (DBDATETIME *) dbdata(mssql_ptr->link,offset));
}
res_length = 19; res_length = 19;
res_buf = (unsigned char *) emalloc(res_length+1); res_buf = (unsigned char *) emalloc(res_length+1);
@ -875,7 +882,7 @@ static void php_mssql_get_column_content_without_type(mssql_link *mssql_ptr,int
DBDATEREC dateinfo; DBDATEREC dateinfo;
int res_length = dbdatlen(mssql_ptr->link,offset); int res_length = dbdatlen(mssql_ptr->link,offset);
if ((column_type != SQLDATETIME) || MS_SQL_G(datetimeconvert)) { if ((column_type != SQLDATETIME && column_type != SQLDATETIM4) || MS_SQL_G(datetimeconvert)) {
if (column_type == SQLDATETIM4) res_length += 14; if (column_type == SQLDATETIM4) res_length += 14;
if (column_type == SQLDATETIME) res_length += 10; if (column_type == SQLDATETIME) res_length += 10;
@ -883,8 +890,15 @@ static void php_mssql_get_column_content_without_type(mssql_link *mssql_ptr,int
res_buf = (unsigned char *) emalloc(res_length+1); res_buf = (unsigned char *) emalloc(res_length+1);
res_length = dbconvert(NULL,coltype(offset),dbdata(mssql_ptr->link,offset), res_length, SQLCHAR, res_buf, -1); res_length = dbconvert(NULL,coltype(offset),dbdata(mssql_ptr->link,offset), res_length, SQLCHAR, res_buf, -1);
} else {
if (column_type == SQLDATETIM4) {
DBDATETIME temp;
dbconvert(NULL, SQLDATETIM4, dbdata(mssql_ptr->link,offset), -1, SQLDATETIME, (LPBYTE) &temp, -1);
dbdatecrack(mssql_ptr->link, &dateinfo, &temp);
} else { } else {
dbdatecrack(mssql_ptr->link, &dateinfo, (DBDATETIME *) dbdata(mssql_ptr->link,offset)); dbdatecrack(mssql_ptr->link, &dateinfo, (DBDATETIME *) dbdata(mssql_ptr->link,offset));
}
res_length = 19; res_length = 19;
res_buf = (unsigned char *) emalloc(res_length+1); res_buf = (unsigned char *) emalloc(res_length+1);