45 if (!defined(
'ADODB_DIR'))
die();
47 if (!defined(
'_ADODB_ODBC_LAYER')) {
48 include(ADODB_DIR.
"/drivers/adodb-odbc.inc.php");
51 if (!defined(
'ADODB_SYBASE_SQLANYWHERE')){
53 define(
'ADODB_SYBASE_SQLANYWHERE',1);
56 var $databaseType =
"sqlanywhere";
57 var $hasInsertID =
true;
59 function ADODB_sqlanywhere()
64 function _insertid() {
65 return $this->GetOne(
'select @@identity');
68 function create_blobvar($blobVarName) {
69 $this->Execute(
"create variable $blobVarName long binary");
73 function drop_blobvar($blobVarName) {
74 $this->Execute(
"drop variable $blobVarName");
78 function load_blobvar_from_file($blobVarName, $filename) {
81 $fd = fopen ($filename,
"rb");
83 $integer_chunks = (integer)filesize($filename) / $chunk_size;
84 $modulus = filesize($filename) % $chunk_size;
89 for($loop=1;$loop<=$integer_chunks;$loop++){
90 $contents = fread ($fd, $chunk_size);
91 $contents = bin2hex($contents);
95 for($loop2=0;$loop2<strlen($contents);$loop2+=2){
96 $hexstring .=
'\x' . substr($contents,$loop2,2);
99 $hexstring = $this->qstr($hexstring);
101 $this->Execute(
"set $blobVarName = $blobVarName || " . $hexstring);
108 function load_blobvar_from_var($blobVarName, &$varName) {
111 $integer_chunks = (integer)strlen($varName) / $chunk_size;
112 $modulus = strlen($varName) % $chunk_size;
114 $integer_chunks += 1;
117 for($loop=1;$loop<=$integer_chunks;$loop++){
118 $contents = substr ($varName, (($loop - 1) * $chunk_size), $chunk_size);
119 $contents = bin2hex($contents);
123 for($loop2=0;$loop2<strlen($contents);$loop2+=2){
124 $hexstring .=
'\x' . substr($contents,$loop2,2);
127 $hexstring = $this->qstr($hexstring);
129 $this->Execute(
"set $blobVarName = $blobVarName || " . $hexstring);
144 function UpdateBlob($table,$column,&$val,$where,$blobtype=
'BLOB')
146 $blobVarName =
'hold_blob';
147 $this->create_blobvar($blobVarName);
148 $this->load_blobvar_from_var($blobVarName, $val);
149 $this->Execute(
"UPDATE $table SET $column=$blobVarName WHERE $where");
150 $this->drop_blobvar($blobVarName);
157 var $databaseType =
"sqlanywhere";
159 function ADORecordSet_sqlanywhere($id,$mode=
false)
UpdateBlob($table, $column, $val, $where, $blobtype='BLOB')