这是关于这个×××的定义。

#define SQLITE_OK          0  

 

#define SQLITE_ERROR        1  

#define SQLITE_INTERNAL     2  

#define SQLITE_PERM        3  

#define SQLITE_ABORT        4  

#define SQLITE_BUSY         5  

#define SQLITE_LOCKED       6  

#define SQLITE_NOMEM       7  

#define SQLITE_READONLY     8  

#define SQLITE_INTERRUPT    9  

#define SQLITE_IOERR       10  

#define SQLITE_CORRUPT     11  

#define SQLITE_NOTFOUND    12  

#define SQLITE_FULL        13  

#define SQLITE_CANTOPEN    14  

#define SQLITE_PROTOCOL    15  

#define SQLITE_EMPTY      16  

#define SQLITE_SCHEMA      17  

#define SQLITE_TOOBIG      18  

#define SQLITE_CONSTRAINT  19  

#define SQLITE_MISMATCH   20  

#define SQLITE_MISUSE     21  

#define SQLITE_NOLFS       22  

#define SQLITE_AUTH       23  

#define SQLITE_FORMAT      24  

#define SQLITE_RANGE       25  

#define SQLITE_NOTADB      26  

#define SQLITE_ROW         100 

#define SQLITE_DONE        101   

 

当调用 sqlite3_prepare_v2()
函数的时候,是一个将SQL语句编译为sqlite内部一个结构体(sqlite3_stmt).


该结构体中包含了将要执行的的SQL语句的信息.

通常情况下,应该是返回0。还有一些时候是返回其他数值。

我以1为例,简单介绍一下错误解决的思路和方法:

 #define SQLITE_ERROR        1   

 

我们尝试用以下代码来进行测试:

// Get the path to the documents directory and append the databaseName

NSString *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDir = [documentPaths objectAtIndex:0];

databasePath = [documentsDir stringByAppendingPathComponent:databaseName];

 

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

   NSString *documentsDirectory = [paths objectAtIndex:0];

   NSString *path = [documentsDirectory stringByAppendingPathComponent:databaseName];

    NSFileManager *fileManager = [NSFileManager defaultManager];

      上面的这个path,我们可以看到,我们需要连接的数据库的那个路径。有时候,如果你的工程创建好了以后,在运行时会把database复制 到这个路径下面。如果中途数据库发生了变化,随之有可能没有拷贝过去,那么这个路径下的数据库文件会和你工程里面的不一致。也许这个path下面的是一个 大小为0字节的空数据库。所以通常即便是发现了数据库的存在,但是也不能保证你数据库的结构体是正确的。

 

   BOOL find = [fileManager fileExistsAtPath:path];

   

   if (find) {

        NSLog(@"Database file have already existed.");

       if(sqlite3_open([path UTF8String], &database_) != SQLITE_OK) {

           sqlite3_close(database_);

            NSLog(@"Error: open database file.");

           return NO;

        }

       return YES;

    }

else {

        sqlite3_close(database_);

        NSLog(@"Error: open database file.");

       return NO;

    } 

上面是打开的代码。下一篇,我将要分享一下如何购建一个SqliteHelper类及其方法。

 

http://alexliu.cnblogs.com