1、将double类型的数据存储于image类型的变量中:

(1)、   
char *CManualForecastResultBll::DoubleArray2Binary(std::vector<double> &doubleArray)
{
    int len = doubleArray.size();
    char *bin = new char[len * sizeof(double)];
    unsigned __int64 *p = (unsigned __int64*)bin;
    for (int i = 0; i < len; i++)
    {
        *p = DOUBLE2UINT64(doubleArray.at(i));
        p++;
    }
    return bin;
}

unsigned __int64 CManualForecastResultBll::DOUBLE2UINT64(double v)
{
    unsigned __int64 *pu64n = NULL;
    pu64n = reinterpret_cast<unsigned __int64*>(&v);
    return *pu64n;
}

        (2)、

         VARIANT            varBLOB;
                        SAFEARRAY        *psa;
                        SAFEARRAYBOUND    rgsabound[1];

rgsabound[0].lLbound = 0;
                        rgsabound[0].cElements = (ULONG)(pData->qLen);
                        psa = SafeArrayCreate(VT_UI1, 1, rgsabound);
                        byte * pQt = pData->QTLINE;                                //自己的数据byte类型
                        for (long i = 0; i < pData->qLen; i++)
                            SafeArrayPutElement (psa, &i, pQt++);
                        varBLOB.vt = VT_ARRAY | VT_UI1;
                        varBLOB.parray = psa;
                        pRecordset->GetFields()->GetItem(SimulateResultDataFeilds[i])->AppendChunk(varBLOB);

2、根据已知image类型中存储的数据类型(例如:double、float等)取数据:

case VT_ARRAY | VT_UI1:

             Binary2DoubleArray(vtFld);
                  break;

//////////////////////////////////////////////////////////////////////////
void DBRecordset::Binary2DoubleArray(_variant_t vtFld)
{
    int len =  vtFld.parray->rgsabound->cElements / sizeof(double);
    double *pdata = new double[len];

/*int len =  vtFld.parray->rgsabound->cElements / sizeof(float);
    float *pdata = new float[len];*/

SafeArrayAccessData(vtFld.parray, (void**)&pdata);

/*unsigned __int64 *pu64n = new unsigned __int64[len];
    SafeArrayAccessData(vtFld.parray, (void**)&pu64n);*/

ofstream writetofile("image.txt");
    for (int i = 0; i < len; i++)
    {
        if (i % 30 == 0 && i != 0)
        {
            writetofile<<endl;
        }
        writetofile<<pdata[i]<<"\t";
        //writetofile<<*(reinterpret_cast<double*>(&pu64n[i]))<<"\t";
        writetofile.flush();
    }
    writetofile<<endl;
    writetofile.close();
    SafeArrayUnaccessData(vtFld.parray);
}

读写SQLServer数据库中的image类型数据(简单)的更多相关文章

  1. 关于数据库中varchar/nvarchar类型数据的获取注意事项

    当在页面后台获取数据库表中某字段的数据时,需注意该数据的类型.防止因实际数据的字符长度因达不到指定数据类型规定的字符长度而导致空格的占位符. 比如: MSSQL中某一表的结构如下:   表中的数据: ...

  2. C#:向SqlServer数据库中插入imange类型

    using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServi ...

  3. Excel 数据导入至Sqlserver 数据库中 ltrim() 、rtrim() 、replace() 函数 依次空格无效问题

    今天导一些数据从Excel中至Sqlserver 数据库中,在做数据合并去重的时候发现,有两条数据一模一样,竟然没有进行合并: 最后发现有一条后面有个“空格”,正是因为这个“空格”让我抓狂许久,因为它 ...

  4. 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)

    分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...

  5. (转)分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)

    分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...

  6. 【转载】Sqlserver数据库中无自增Id的情况下使用ROW_NUMBER()函数进行数据分页

    在Sqlserver数据库中,如果查询表中含有自增长Id列,一般会采用select Top的方式来数据的分页操作.而实际上很多数据表设计的时候,不一定含有自增长Id列,那么数据库没有Id自增列的时候要 ...

  7. SQLServer清空数据库中所有表的数据

    今早同事跟进客户反馈的问题时,提了个要求,要求清空数据库中所有表的数据. 记得之前用游标遍历所有的表名 + exec 动态语句 truncate table 表名 实现过这个功能. 网上搜了下,有更简 ...

  8. Sqlserver数据库中的临时表详解

    临时表在Sqlserver数据库中,是非常重要的,下面就详细介绍SQL数据库中临时表的特点及其使用,仅供参考. 临时表与永久表相似,但临时表存储在tempdb中,当不再使用时会自动删除.临时表有两种类 ...

  9. PowerDesigner从SqlServer数据库中导入实体模型

    PowerDesigner从SqlServer数据库中导入实体模型 时间 2013-06-28 10:26:34 CSDN博客 原文  http://blog.csdn.net/sxycxwb/art ...

随机推荐

  1. CentOS 6.9搭建的网关服务器不经过静态路由表的问题解决(没有开启路由转发功能)

    场景: 1.使用CentOS 6.9搭建的网关服务器,下面的机器都设置用这个网关,搭建参考:http://www.cnblogs.com/EasonJim/p/8289618.html 2.配置了静态 ...

  2. 在WPF中实现玻璃模糊效果

    在WPF中实现玻璃模糊效果还是比较简单的,主要方式如下: 添加一个Rectangle或其它控件作为玻璃放到顶部图层 将底部图像作为Brush(大多数的时候用VisualBrush)填充到Rectang ...

  3. Spring自动扫描组件

    通常情况下,声明所有的Bean类或组件的XML bean配置文件,这样Spring容器可以检测并注册Bean类或组件. 其实,Spring是能够自动扫描,检测和预定义的项目包并实例化bean,不再有繁 ...

  4. JAVA-数据类型、变量、常量

    http://blog.csdn.net/yuhailong626/article/details/7245571 http://www.cnblogs.com/JackieADBM/p/534222 ...

  5. boost.python编译及演示样例

    欢迎转载,转载请注明原文地址:http://blog.csdn.net/majianfei1023/article/details/46781581 linux编译boost的链接:http://bl ...

  6. Linux 系统 /proc/[pid]/stat 文件解释

    转载:http://www.net527.cn/a/caozuoxitong/Linux/2012/0823/24385.html [root@localhost ~]# cat /proc/6873 ...

  7. MySQL round函数

    在mysql中,round函数用于数据的四舍五入,它有两种形式: 1.round(x,d)  ,x指要处理的数,d是指保留几位小数 这里有个值得注意的地方是,d可以是负数,这时是指定小数点左边的d位整 ...

  8. client_thread.c server_thread.c

    client_thread.c #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> ...

  9. 嵌入式mp3播放器

    分四部分:按键驱动,声卡驱动,Madplay播放器移植,MP3主播放器处理 按键1:播放,按键2:停止,按键3:上一曲,按键4:下一曲 UA1341内核自带声卡驱动 .解压内核: tar zxvf l ...

  10. Could not connect to Redis at 192.168.0.129:6379: Connection refused

    在虚拟机上(CentOS 6.7)本机连接自己的redis [root@localhost bin]# ./redis-cli -h Could not connect to Redis at : C ...