通过 ODBC 显示 Sybase Image 数据类型的部分图像

Posted

技术标签:

【中文标题】通过 ODBC 显示 Sybase Image 数据类型的部分图像【英文标题】:Partial Image display from Sybase Image data type over ODBC 【发布时间】:2011-10-20 10:42:17 【问题描述】:

我昨天整天都在为此苦苦挣扎,但无法深究。

我有一个现有的数据库,我正试图从中检索图像(我知道图像存储很庞大,但这是我坚持的问题)。我能够查询相应的数据库字段并获取数据,但是当我显示它时,似乎只显示了部分数据。

我正在使用此代码来显示图像:

require_once('../odbc_config.php');
if((isset($_GET['ur'])) AND ($_GET['ur'] != "")) 
    $aria_query1_ur = $_GET['ur'];
    $aria_query1 = "SELECT * FROM Patient WHERE PatientId='$aria_query1_ur' ";
    $patient_result = odbc_exec($aria,$aria_query1) or die("Error getting Patient Data");
    $patient_data = odbc_fetch_array($patient_result);
    
$ID=$patient_data['PatientSer'];
$query = odbc_exec($aria, "SELECT * FROM Photo WHERE PatientSer=".$ID);
$row = odbc_fetch_array($query);
$content = $row['Picture'];
header('Content-type: image/jpeg');
echo $content;

我这样称呼这段代码:

echo '<img src="contents/image2.php?ur='.$_GET['ur'].'">';

不幸的是,我似乎只能部分显示图像。图像的尺寸被正确读取,我可以从顶部看到前 50 x 480 左右的像素,但之后我看到的只是 640 x 480 像素的灰色背景。

像这样: http://i1218.photobucket.com/albums/dd411/Barbs_ldsr/stuff/th_partial_image.jpg

Sybase ODBC 驱动程序是否可能只允许一定数量的数据通过?我将如何检查或解决这个问题?还是PHP有问题?

任何帮助表示赞赏。 谢谢

【问题讨论】:

【参考方案1】:

我评论了我们问题的解决方案与 php.ini 解决的有限文本编辑有关。查找下一行。 odbc.defaultlrl = 4096 例如仅放大值 odbc.defaultlrl = 40960000 现在有了这整个画面离开你。我希望能对您有所帮助,并且我们将答案放在保姆要求的论坛中,当其他人遇到此问题时会解决

【讨论】:

非常感谢...它救了我:)

以上是关于通过 ODBC 显示 Sybase Image 数据类型的部分图像的主要内容,如果未能解决你的问题,请参考以下文章

zabbix通过ODBC监控sybase举例

sybase ODBC驱动

使用 MySQL 通过 ODBC 包装另一个 DBMS

我们正在使用Sybase / ODBC如何在运行长批量SQL查询时处理断开连接?

PDO Prepared Statement over ODBC Sybase“PARAM 数据流”错误

C#.net连接Sybase的方法