c#的一些思路!

  将数据库卷挂载好之后,就可以在卷内新创建一个EDB数据库,调用函数CeCreateDatabaseWithProps()实现:

  CEOID CeCreateDatabaseWithProps(

  PCEGUID pGuid,

  CEDBASEINFOEX* pInfo,

  DWORD cProps,

  CEPROPSPEC* prgProps

  );

  l 参数pGuid为挂载数据库的全局标识CEGUID

  l 参数pInfo指定数据库的属性,为一个指向结构体CEDBASEINFOEX的指针。

  l 参数cProps指定参数prgProps数组的元素个数。

  l 参数prgProps指定新建数据库的属性,为一个CEPROPSPEC结构体数组。在EDB中必须设置这些属性,才能向数据库内写入数据,结构体CEPROPSPEC的定义如下:

  typedef struct CEPROPSPEC {

  WORD wVersion;

  CEPROPID propid;

  DWORD dwFlags;

  LPWSTR pwszPropName;

  DWORD cchPropName;

  } CEPROPSPEC;

  n 成员wVersion为结构体版本号,必须设置为1。

  n 成员propid为字段ID,表示数据库中的字段。

  n 成员dwFlags为字段标志,可以取下面值之一或组合:DB_PROP_COMPRESSED(将字段压缩存储)和DB_PROP_NOTNULL(字段不能为空,也不能设置为NULL)。

  n 成员 pwszPropName为字段的名称,为可选。如果没有指定字段的名称,系统将产生一个内部名称。

  n 成员cchPropName为可选的字段名称的长度,最大可为CEDB_MAXDBASENAMELEN (128).

  如果创建EDB数据库成功,函数将返回数据库的对象标志(OID);创建失败将返回NULL。调用GetLastError()获取错误信息,可能的错误值有:

  n E_FAIL: CEDBASEINFOEX结构体中指定数据库名称的szDbaseName成员的长度超过CEDB_MAXDBASENAMLEN。

  n ERROR_ACCESS_DENIED: 试图创建一个包含2个可排序主键的数据库

  n ERROR_ALREADY_EXISTS: 参数prgProps包含的某个字段ID或字段名字已经存在。

  n ERROR_BAD_LENGTH: 某个字段名称的长度超过128。

  n ERROR_DISK_FULL: 磁盘空间不足,无法创建数据库。

  n ERROR_DUP_NAME: 指定名字的数据库在卷中已经存在。

  n ERROR_INVALID_PARAMETER: 某个参数不合法。

  n ERROR_NOT_FOUND: 参数pGuid指定的卷不存在。

  n ERROR_NOT_SUPPORT: 在CEDBASEINFOEX结构体中使用CEDB不支持的值,如CEDB_VALIDMODTIME或CEDB_SYSTEMDB。

  用户还可以删除挂载的数据库卷内的指定数据库,通过函数CeDeleteDatabase()实现:

  BOOL CeDeleteDatabase(

  PCEGUID pGuid

  CEOID oid

  );

  l 参数pGuid指定将被从中删除数据库的挂载数据库卷的CEGUID。

  l 参数oid指定将被删除的数据库的对象ID,这个数据库在指定的数据库卷内必须存在。

  删除数据库成功,函数返回TRUE;失败返回FALSE。注意用户不能删除一个正在打开的数据库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值