首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于Sybase镜像

关于Sybase镜像
EN

Stack Overflow用户
提问于 2009-12-01 15:48:44
回答 1查看 2.4K关注 0票数 1

图像数据类型在sybase中是否转换为字节数组?在sybase中应用web服务获取数据集(图像数据类型)。我使用byte[]来获取web服务的返回。然后我使用"response.binarywrite(byte[])“来显示图像。(ASP.NET C#)但是有一个图像失真的问题(当我放大图像时,一些点被遗漏了)。我不知道为什么会有人知道sybase中的image数据类型可以转换为字节数组?

Original Image

Distortion Image

系统:

1 Sybase

代码语言:javascript
复制
    Sybase db: 11.9.2

    Adaptive server enterprise 12.5.1

    Sybase.Data.AseClient:1.0.152.0

2 ASP.NET C# (Visual Studio2008)

3个IE6

EN

回答 1

Stack Overflow用户

发布于 2009-12-15 16:50:51

最后,我找到了答案。造成这个问题的原因是Sybase对图像访问大小的限制。当图像大小大于37K字节时,输出仍为37k。因此,我在这一步中遗漏了一些字节。解决方案是,您需要设置参数以检索所有数据。部分代码如下:

代码语言:javascript
复制
    [WebMethod]
    public byte[] Image(string c, string r)
    {
       //check input ..
        ConnectionDatabase connbaseloc = new ConnectionDatabase();
        AseConnection conn1 = null;
        AseCommand cmd1 = null;
        string sqlstr1 = "";
        AseDataReader reader = null;
        byte[] Imagebytes = null;
        try
        {
            using (conn1 = connbaseloc.Odbcconn_xxx())
            {
                string setTextCmd = " SET TEXTSIZE 130000"; //set parameter
                cmd1 = new AseCommand(setTextCmd, conn1);
                cmd1.ExecuteNonQuery();
                sqlstr1 = "select ....";
                cmd1 = new AseCommand(sqlstr1, conn1);
                cmd1.CommandText = sqlstr1;
                reader = cmd1.ExecuteReader();
                while (reader.Read())
                {
                    Imagebytes = (byte[])reader["Image"];
                }
            }
        }
        catch (Exception e)
        {
            //do something
        }
        finally
        {
            if (conn1 != null) conn1.Close();
        }

        return Imagebytes;
    }

参数值取决于图片的最大尺寸。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1824615

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档