diff options
author | Frank M. Kromann <fmk@php.net> | 2001-05-01 18:01:08 +0000 |
---|---|---|
committer | Frank M. Kromann <fmk@php.net> | 2001-05-01 18:01:08 +0000 |
commit | e8949d77817eda1a969139f029795149dce4ac5a (patch) | |
tree | 402046c3e23bf97d478b56251e373395b620ec2b /ext/mssql/php_mssql.c | |
parent | ea563184955b48e4576f77fbb9f5edfe6b879459 (diff) | |
download | php-git-e8949d77817eda1a969139f029795149dce4ac5a.tar.gz |
Adding support for BINARY, VARBINARY and IMAGE column types.
Thanks to Brad LaFountain.
Diffstat (limited to 'ext/mssql/php_mssql.c')
-rw-r--r-- | ext/mssql/php_mssql.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/ext/mssql/php_mssql.c b/ext/mssql/php_mssql.c index b9fdf811ef..fd4284f2f9 100644 --- a/ext/mssql/php_mssql.c +++ b/ext/mssql/php_mssql.c @@ -729,6 +729,22 @@ static void php_mssql_get_column_content_with_type(mssql_link *mssql_ptr,int off result->type = IS_DOUBLE; break; } + case SQLVARBINARY: + case SQLBINARY: + case SQLIMAGE: { + DBBINARY *bin; + unsigned char *res_buf; + int res_length = dbdatlen(mssql_ptr->link,offset); + + res_buf = (unsigned char *) emalloc(res_length); + memset(res_buf, 0, res_length); + bin = ((DBBINARY *)dbdata(mssql_ptr->link,offset)); + memcpy(res_buf,bin,res_length); + result->value.str.len = res_length; + result->value.str.val = res_buf; + result->type = IS_STRING; + } + break; case SQLNUMERIC: default: { if (dbwillconvert(column_type,SQLCHAR)) { @@ -759,7 +775,22 @@ static void php_mssql_get_column_content_without_type(mssql_link *mssql_ptr,int return; } - if (dbwillconvert(coltype(offset),SQLCHAR)) { + if (column_type == SQLVARBINARY || + column_type == SQLBINARY || + column_type == SQLIMAGE) { + DBBINARY *bin; + unsigned char *res_buf; + int res_length = dbdatlen(mssql_ptr->link,offset); + + res_buf = (unsigned char *) emalloc(res_length); + memset(res_buf, 0, res_length); + bin = ((DBBINARY *)dbdata(mssql_ptr->link,offset)); + memcpy(res_buf,bin,res_length); + result->value.str.len = res_length; + result->value.str.val = res_buf; + result->type = IS_STRING; + } + else if (dbwillconvert(coltype(offset),SQLCHAR)) { unsigned char *res_buf; int res_length = dbdatlen(mssql_ptr->link,offset); |