3273|5

59

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

WinCE自带数据库应用问题 [复制链接]

以下是自己写的一段小程序,运行的时候总是不能进入到switch语句的分支内,即不会有Refreshing11!的提示。数据库内已经存入数据,只是想在一个ClistCtrl控件中显示其数据。
请问问题出在什么地方?


void CTCPClientDlg::RefreshDB()
{       
        CEOID ceOid;
        WORD wProps;
        DWORD dwRecSize;
        PBYTE pBuff;
        PCEPROPVAL pRecord;

        SAVEDATA *pDBData;

        int iRecordCount=GetRecordCount(&m_ceGuid,m_ceOid);//获得记录数量
        DWORD dwIndex;

    CListCtrl *pListCtrl=(CListCtrl*)GetDlgItem(IDC_LST_DBDATA);
    pListCtrl->DeleteAllItems();
//AfxMessageBox(_T("Refreshing1"));
        for(int k=0;k         {
                ceOid=CeSeekDatabase(m_hDB,CEDB_SEEK_BEGINNING,k,&dwIndex);

//AfxMessageBox(_T("Refreshing4!"));

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


                pRecord=(PCEPROPVAL)pBuff;
                pDBData=new SAVEDATA;

                CString str;
                str.Format(_T("Refreshing5,and the wProps=%d,the count=%d"),wProps,iRecordCount);
AfxMessageBox(str);
                for(int i=0;i                 {
AfxMessageBox(_T("Refreshing10!"));

                        switch(pRecord->propid)///////////////???????????
                        {
AfxMessageBox(_T("Refreshing11!"));
                        case PID_RECVSTR:
                                {
//                                        wcscpy((unsigned short*)pDBData->RecvStr,(unsigned short*)pRecord->val.blob.lpb);
                                        break;
                                }
AfxMessageBox(_T("Refreshing8!"));
                        case PID_RECVLEN:
                                {
                                        pDBData->len=pRecord->val.iVal;
                                        break;
                                }
AfxMessageBox(_T("Refreshing9!"));
                        }
                        pRecord++;
AfxMessageBox(_T("Refreshing6!"));
                }
                LocalFree(pBuff);
//AfxMessageBox(_T("Refreshing3!"));

                TCHAR szStature[5];
                _itow(pDBData->len,szStature,10);
                pListCtrl->SetItemText(k,0,(unsigned short *)szStature);
//                pListCtrl->SetItemText(k,1,(const unsigned short *)pDBData->RecvStr);

                delete pDBData;
               
        }
AfxMessageBox(_T("Refreshing2!"));
        return;
}

最新回复

怎么给你分?  详情 回复 发表于 2007-9-4 17:55
点赞 关注

回复
举报

79

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
str.Format(_T("Refreshing5,and the wProps=%d,the count=%d"),wProps,iRecordCount);
AfxMessageBox(str);
显示的记录数和字段数都是正确的。
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
switch(pRecord->propid)///////////////???????????
{
AfxMessageBox(_T("Refreshing11!"));
case PID_RECVSTR:

你搞错了吧, 事实上SWitch 根本不执行AfxMessageBox(_T("Refreshing11!"));

只会执行case :中的语句
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
把AfxMessageBox 放到Case里面就好了
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

5
 
已经搞定, 仍要谢谢个位。。。
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

6
 
怎么给你分?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表