用户名: 密   码:
   飞诺网 加入收藏
飞诺网 数据库 Access Mysql Mssql Oracle Sybase FoxPro db2 数据库相关文档
Mssql系列教程 Mssql实例 sqlServer技术文档 sql2005

您当前的位置:飞诺网 >>  数据库 >>  Mssql >> sqlServer技术文档

SQLite3把数据库文件放到有中文的目录下时就出问题了,问题在哪里?这里code告诉你!

www.diybl.com    时间 : 2007-09-08  作者:佚名   编辑:本站 点击:   [ 评论 ]

前几天给程序加上了SQLite3数据库的支持,可是发现当把数据库文件放到有中文的目录下时就出问题了!
我前一阵写过SQLite我选择我喜欢中介绍过,默认的接口的编码方式是UTF8,所以问题就在这里!
下面是我写的code,该文章版权归本人所有,代码大家可以随意使用!

      char szFileNameUtf8[MAX_PATH*4];
        _bstr_t bstrFileName = strPath;
        if(HasChineseChar(strPath))
        {
            AtlUnicodeToUTF8(bstrFileName,bstrFileName.length(),szFileNameUtf8,sizeof(szFileNameUtf8));
            result = sqlite3_open(szFileNameUtf8, &m_sqlite3DB);
        }
        else
        {
            result = sqlite3_open(strPath, &m_sqlite3DB);
        }

        if (result == SQLITE_OK)
        {
            char *errmsg = NULL;
            int nError = sqlite3_exec( m_sqlite3DB, "create table Table_a( ID integer primary key autoincrement, name nvarchar(32) )", NULL, NULL, &errmsg );
            if(nError != SQLITE_OK)
            {
                //这里不需要log.
                ATLTRACE( "创建表失败,错误码:%d,错误原因:%s\n", result, errmsg );
            }
            //else cont.
        }

如果你发现有什么问题请给我留言让我知道!
HasChineseChar这个api是我上篇文章中提供的代码:http://blog.csdn.net/wangweixing2000/archive/2007/09/04/1771351.aspx

转载需经过本人同意!




如果图片或页面不能正常显示请点击这里
sqlServer技术文档推荐文章

文章评论