zoukankan      html  css  js  c++  java
  • WinCE内嵌数据库使用小问题

    用WinCE内嵌的数据库做个存储短信的程序,犯了许多错误,

    小记下:

    1:定义属性

    #define pidPhoneNo MAKELONG(CEVT_LPWSTR,2)

    或者

    const CEPROPID pidPhoneNo = MAKELONG(CEVT_LPWSTR,2);

    2:创建数据库

    CEDBASEINFO结构体的wNumSortOrder最大为4

    windbase.h 头文件中

    #define __CEDB_MAXSORTORDER 4

    CEDBASEINFO结构中wNumSortOrder定义

    WORD     wNumSortOrder;     //@field Number of sort orders active in the database

                                    // Maximum is CEDB_MAXSORTORDER.

    个人理解是需要进行排序的属性数,最多4个属性进行排序,不是指一个记录只能有4个属性

    个人程序中只用一个属性进行排序,其他属性不排序,貌似不超过最大属性字节限制,可以任意多个属性。

    ceDBinfo.rgSortSpecs[0].propid=pidTime;

    ceDBinfo.rgSortSpecs[0].dwFlags=CEDB_SORT_DESCENDING|CEDB_SORT_CASEINSENSITIVE; //降序,忽略大小写

    3:输出记录时属性的输出次序

    CEOID ceOid;

    WORD wProps;

    DWORD dwRecSize;

    PBYTE pBuff =0;

    PCEPROPVAL pRecord;

    ceOid = CeSeekDatabase(m_hDB,CEDB_SEEK_BEGINNING,k,NULL);

    ceOid = CeReadRecordProps(m_hDB,CEDB_ALLOWREALLOC,&wProps,NULL,&(LPBYTE)pBuff,&dwRecSize);

    pRecord=(PCEPROPVAL)pBuff;

    for(int i=0;i<wProps;i++)

    {

    //以本人程序例子,wProps=4,4个属性 输出的顺序与写入注册表时一样

    //如果某条记录写入的时候是:姓名、号码、内容、时间,则输出这条记录的时候是:姓名、号码、内容、时间

    //如果某条记录写入的时候是:时间、号码、姓名、内容,则输出这条记录的时候是:时间、号码、姓名、内容

    //在同一个数据库中,可以混着用任意顺序

    }

    4:返回数据库记录数

    CEOIDINFO oidInfo;

    if (!CeOidGetInfoEx(&m_ceGuid,m_ceOid,&oidInfo))

    {

    TRACE(_T("获取数据库记录数失败 err/n"));

    }

    现在看多么顺利的一句话,因为在if那句后面多写了个分号,折腾了小一天,悲催!

    5:记录中属性的数据类型

    所有属性均用

    CEVT_LPWSTR类型

    程序中用CString

    存储的时候转化:例 内容属性

    TCHAR content[256];

    lstrcpy(content,sm.szContent);//szContent是CString类型

    pProps->val.lpwstr=content;

    输出时转为CString:pSM->szContent=pRecord->val.lpwstr;

  • 相关阅读:
    忘记 mysql 数据库连接密码(解决方案)
    CVE-2020-14882&CVE-2020-14883 Weblogic未授权远程命令执行漏洞
    社会工程学之信息收集之信息收集
    8种src常用越权测试小技巧
    《数据中台-让数据用起来》思维导图(更新中)
    idea使用zsh代替系统的terminal
    mac安装oh my zsh
    mac安装homebrew
    navicat破解(亲测可用)
    docker搭建typecho博客系统,并启用https
  • 原文地址:https://www.cnblogs.com/ezhong/p/2171479.html
Copyright © 2011-2022 走看看