我正在爲我們的客戶端編寫代碼,該代碼旨在將圖像從SQL Server數據庫讀取到文件中一個緩存目錄。當我從使用adodb for php讀取SQL Server數據庫時,如何阻止varbinary數據被截斷爲256kb
二進制數據被截斷爲262144字節(256kb)。該列的類型爲varbinary(max),並且我們使用ADOdb for Php來訪問數據庫。截斷的原因是什麼?我們如何防止截斷?
附件是用來執行連接代碼:
$conn_image = ADONewConnection('odbc_mssql');
$dsn = "Driver={SQL Server};Server=servername;Database=database;";
$conn_image->Connect($dsn,username,password);
$query = "SELECT
Personnel.Text4,
Images.Image
FROM Images
LEFT JOIN Personnel ON Images.ParentId = Personnel.ObjectId
WHERE Personnel.Text4 = '12345'
";
$result = $conn_image->Execute($query);
if (!$result)
print $conn_image->ErrorMsg();
else
while (!$result->EOF) {
if (!empty($result->fields[0])) {
$filename = $result->fields[0] . ".jpg";
$rawdata = $result->fields[1];
$size_to_write = strlen($rawdata);
$bytes_written = 0;
$file = fopen("test" . DIRECTORY_SEPARATOR . $filename,'w');
while ($bytes_written < $size_to_write) {
$bw = fwrite($file, substr($rawdata, $bytes_written));
$bytes_written += $bw;
}
$result->MoveNext();
}
}
您正在使用哪個版本的SQL Server? – Tahbaza 2010-08-27 23:18:42
Microsoft SQL Server企業版版本9.00.1399.06 如果我正確讀取信息。 – Roybug 2010-08-28 05:33:40