我的应用程序在从数据库读取/写入数据时崩溃。我在c上有一个数据库:复制粘贴并使用其他名称重命名。以下是我用于复制的过程...如果您有任何建议或解决方案,请指导我。
RFs fs;
fs.Connect();
CFileMan* fileMan=CFileMan::NewL(fs);
CleanupStack::PushL(fileMan);
TInt err=fileMan->Copy(anOld,aNew);
CleanupStack::PopAndDestroy(fileMan);
fs.Close();
if(err==KErrNone)
return ETrue;
else
return EFalse;
当我尝试从数据库中插入或获取任何数据时,它在下一行崩溃。
User::LeaveIfError( iDatabase.Execute( strSQL ) );
数据库创建:
TBool Open = OpenL();
if (!Open)
{
User::LeaveIfError(iDbSession.Connect());
CleanupClosePushL(iDbSession);
CleanupClosePushL(iDatabase);
User::LeaveIfError(iDatabase.Replace(iDbSession, iDBPath ));
// create table
_LIT(KSQLtest,"CREATE TABLE testtable(id INTEGER,test1 VARCHAR(50),test2 VARCHAR(50))"); User::LeaveIfError(iDatabase.Execute(KSQLtest));
iDatabase.Compact();
iDatabase.Close();
iDbSession.Close();
CleanupStack::PopAndDestroy();
CleanupStack::PopAndDestroy();
打开数据库:
User::LeaveIfError( iDbSession.Connect() );
CleanupClosePushL( iDbSession );
if ( KErrNone != iDatabase.Open(iDbSession, iDBPath))
{
iDbSession.Close();
CleanupStack::PopAndDestroy();
return EFalse;
}
else
{
CleanupClosePushL( iDatabase );
iIsDatabaseOpened = ETrue;
return ETrue;
}
最佳答案
当User:: LeaveIfError()
返回错误代码时,iDatabase.Execute()
引发异常。
您可以在NewLC上找到最常见的Symbian错误代码。
如果崩溃发生在RDbDatabase::Execute()
实际运行之前,我们将需要查看更多代码来找出iDatabase
处于错误状态的原因。
关于c++ - 应用程序在访问新数据库时崩溃,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1541994/