2867|6

84

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

WinCE5.0的一个EDB应用程序Debug版可以运行Release版就是老出错 [复制链接]

如题:

WinCE5.0的一个EDB应用程序Debug版可以运行Release版就是老出错,

痛苦啊!

而且EDB容量还是比较小的,这是烦死了

此帖出自WindowsCE论坛

最新回复

问题解决了,是这里有问题: ZeroMemory(&pProps[0],sizeof(CEPROPVAL)*4); 这里把4改成2就好,一时疏忽,因为只定义了一个2成员的数组  详情 回复 发表于 2009-9-22 11:30
点赞 关注
 

回复
举报

1

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
什么错误呢?
此帖出自WindowsCE论坛
 
 
 

回复

3

帖子

0

TA的资源

禁止访问

板凳
 
提示: 作者被禁止或删除 内容自动屏蔽
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

4
 
用Debug版时,一点都没有问题;但是用Relse版调试时,就出现问题:

  1. BOOL CComTestDlg::AddNewStudent(const REC_STUDENT *pRecStudent)
  2. {
  3.         //定义学生数据库对象
  4.         //CComTestDlg tblStudent;
  5.         CEOID ceOid;
  6.         //定义字段属性
  7.         //CEPROPVAL pProps[4];
  8.         CEPROPVAL pProps[2];
  9.         DWORD dwErrorCode = 0;

  10.         DWORD dwWritten = 0;

  11.         //1,打开数据库--在程序初始化时打开或创建
  12.         //if (!tblStudent.DB_Open_Student())
  13.         if(m_hDB==NULL)
  14.                 if (!DB_Open_Student())
  15.                 {
  16.                         //打开数据库失败
  17.                         return FALSE;
  18.                 }

  19.         //给字段属性赋值
  20.         ZeroMemory(&pProps[0],sizeof(CEPROPVAL)*4);

  21.         [color=#FF0000]
  22.         //编号
  23.         pProps[0].propid = PID_NO;
  24.         pProps[0].val.lpwstr = LPWSTR(pRecStudent->szNo);
  25.         pProps[0].wFlags = 0;

  26.         //数据
  27.         pProps[1].propid = PID_NAME ;
  28.         pProps[1].val.lpwstr = LPWSTR(pRecStudent->szName);
  29.         pProps[1].wFlags = 0;[/color]

  30.         //写入记录
  31.         ceOid = CeWriteRecordProps(m_hDB,0,2,pProps);

  32.         if (ceOid == 0)
  33.         {
  34.                 dwErrorCode = GetLastError();
  35.                 //如果 dwErrorCode  = 183, 表示编号重复
  36.                 //ERROR_ALREADY_EXISTS--183;ERROR_DISK_FULL--112;ERROR_INVALID_PARAMETER--87;
  37.                 if (dwErrorCode == ERROR_ALREADY_EXISTS)
  38.                 {
  39.                         TRACE(L"编号重复\n");
  40.                 }
  41.                 else
  42.                 {
  43.                         TRACE(L"写入记录失败 , Error Code = %d \n",dwErrorCode);
  44.                 }
  45.                
  46.                 //关闭数据库
  47.                 //tblStudent.DB_Close_Student();
  48.                 DB_Close_Student();
  49.                 return FALSE;
  50.         }


  51.         return TRUE;
  52. }

复制代码


红色部分的在Release版时,两个lpwstr变量不能得到数据,说是错误的指针!

然后就执行ceOid = CeWriteRecordProps(m_hDB,0,2,pProps);语句就报错!
此帖出自WindowsCE论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

5
 

  1.         [color=#FF0000]//编号
  2.         pProps[0].propid = PID_NO;
  3.         pProps[0].val.lpwstr = LPWSTR(pRecStudent->szNo);
  4.         pProps[0].wFlags = 0;

  5.         //数据
  6.         pProps[1].propid = PID_NAME ;
  7.         pProps[1].val.lpwstr = LPWSTR(pRecStudent->szName);
  8.         pProps[1].wFlags = 0;[/color]
复制代码
此帖出自WindowsCE论坛
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

6
 
关注
此帖出自WindowsCE论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

7
 
问题解决了,是这里有问题:

ZeroMemory(&pProps[0],sizeof(CEPROPVAL)*4);

这里把4改成2就好,一时疏忽,因为只定义了一个2成员的数组
此帖出自WindowsCE论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
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
快速回复 返回顶部 返回列表