如何在sqlite中按类型获取表

时间:2011-03-23 12:10:35

标签: iphone sqlite

嗨大家好,

我从mydatabase获取所有表格。

我的代码是

if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
        // Setup the SQL Statement and compile it for faster access

        const char *sqlStatement = "SELECT * FROM sqlite_master where type='table'";
        sqlite3_stmt *compiledStatement;
        if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) {
            // Loop through the results and add them to the feeds array
            while(sqlite3_step(compiledStatement) == SQLITE_ROW) {
                // Read the data from the result row
                NSString *aName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)];


                [categoriesList addObject:aName];


            }
        }

        // Release the compiled statement from memory
        sqlite3_finalize(compiledStatement);

    }

但是我需要在一个数组中添加几个表,并且需要在另一个数组中添加扩孔。

例如:我有水果,鲜花等表格......还有像list1,list2,list3这样的表格。

我需要将水果,鲜花......放到一个数组中,并且需要将list1,list2 ...添加到另一个数组中。因为我正在显示水果,鲜花中的所有项目....

在list1中,list2我维护这些类别中的所有选定项目。

但是通过使用上面的代码,我得到了所有表格列表。

任何人都可以帮助我。

(如果有人没有提出我的问题,请让我添加评论)

提前感谢你。 我怎样才能得到不同的表格。

2 个答案:

答案 0 :(得分:0)

为了将表分成两组,您需要一些方法来区分它们。您要么事先知道哪些表应该属于list1,要么list1应该包含所有以'f'开头的表,或者所有具有奇数行的表,或者......

答案 1 :(得分:0)

您可以使用hasPrefix:

测试表名是否以“list”开头

if([aName hasPrefix:@“list”])//如果aName以“list”开头,则为true

[listCategoriesList addObject:aName];

否则

[otherCategoriesList addObject:aName];