android真的很纠结很多权限都没有,以下是android平台打开数据库的方法 话不多说上代码
bool databaseoperate::openDatabase(void)
{
//打开一个数据库,如果该数据库不存在,则创建一个数据库文件
if (pDB == NULL)
{
#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)
std::string sqlname = "save.db";
unsigned long size;
std::string m_DBDir = CCFileUtils::sharedFileUtils()->getWritablePath() + sqlname;
//std::string m_DBDir = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath(sqlname.c_str());
char *pFileContent = (char*)CCFileUtils::sharedFileUtils()->getFileData(sqlname.c_str(), "rb", &size);
FILE * pf = fopen(m_DBDir.c_str(), "wb");
if (! pf)
{
CCLog("sql open failed!%d",222);
return false;
}
fwrite(pFileContent, 1,size, pf);
fflush(pf);
fclose(pf);
//std::string m_DBDir = CCFileUtils::sharedFileUtils()->fullPathFromRelativePath("data.db");
if(SQLITE_OK != sqlite3_open(m_DBDir.c_str(), &pDB))
{
CCLog("sql open failed!%d",123);
return false;
}
return true;
#else
std::string filename = CCFileUtils::sharedFileUtils()->fullPathForFilename("save.db");
result = sqlite3_open(filename.c_str(), &pDB);
CCLog( "filename%s\n" , filename.c_str());
if( result != SQLITE_OK )
{
CCLog( "not open :%s ,error:%s\n" , filename.c_str(), errMsg );
return false;
}
else
{
return true;
}
#endif
}
return false;
}
sqlite3 源码下载地址http://download.csdn.net/detail/zhengyayuan123/5337513