当前位置:   article > 正文

sqlite学习笔记之sqlite3 open函数的使用_sqlite.open

sqlite.open

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

作者:朱金灿

来源:http://blog.csdn.net/clever101

 

       打开sqlite数据库需要用到sqlite3_open函数,但是sqlite3_open函数的第一个参数是数据库文件的绝对路径。它是有讲究的,必须是utf8字符串。也就是说假如文件路径是非utf8字符,就得转为utf字符。于是参考网上的资料,写了一个最常用的从多字节转utf8的函数,代码如下:

// 编译环境:VS 2008+sp1,Win7, 工程设置为多字节字符集std::string MbcsToUtf8( const char* pszMbcs ) {  std::string str;  WCHAR   *pwchar=0;  CHAR    *pchar=0;  int len=0;  int codepage = AreFileApisANSI() ? CP_ACP : CP_OEMCP;  len=MultiByteToWideChar(codepage, 0, pszMbcs, -1, NULL,0);  pwchar=new WCHAR[len];  if(pwchar!=0)  {   len = MultiByteToWideChar(codepage, 0, pszMbcs, -1, pwchar, len);   if( len!=0 )   {    len = WideCharToMultiByte(CP_UTF8, 0, pwchar, -1, 0, 0, 0, 0);    pchar=new CHAR[len];    if(pchar!=0)    {     len = WideCharToMultiByte(CP_UTF8, 0, pwchar, -1, pchar, len,0, 0);     if(len!=0)                     {      str = pchar;                        }     delete pchar;    }    delete pwchar;   }  }  return str; }
  • 1

测试代码如下:

// 编译环境:VS 2008+sp1,Win7, 工程设置为多字节字符集#include <sqlite3.h>#include <string>int main(void){sqlite3* db = 0char* pszErrMsg = NULL// 连接数据库    std::string strImgIndexFileName = “C:\\test.db” std::string strUtf8File = MbcsToUtf8(strImgIndexFileName.c_str()); int ret = sqlite3_open(strUtf8File.c_str(),&db); if ( ret != SQLITE_OK ) {  fprintf(stderr, "无法打开数据库: %s", sqlite3_errmsg(db));  return 1; }  return 0;}
  • 1

参考文献:

1. sqlite3问题2:中文路径的支持

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/繁依Fanyi0/article/detail/490945
推荐阅读
相关标签
  

闽ICP备14008679号