簡體   English   中英

無法使用FMDB讀取數據

[英]Can't read data using FMDB

我正在使用FMDB。 我創建並插入表中。 工作正常。

idx整數非空默認0主鍵自動遞增

topicId Varchar不是NULL

listChat BLOB NOT NULL

在此處輸入圖片說明

但是我無法從listChat列中獲取所有數據。 這是我的代碼:

- (NSMutableArray*)readChatHistoryFromDatabaseWithTopicId:(NSString *)topicId {
    NSMutableArray *listChat = [[NSMutableArray alloc] init];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *path = [self databasePath];
    if ([fileManager fileExistsAtPath:path] == YES) {
        FMDatabase *database = [FMDatabase databaseWithPath:path];
        if (database) {
            [database open];
            NSString *query = [NSString stringWithFormat:@"SELECT * FROM %@ WHERE topicId=\"%@\"", OCSDK_CHAT_HISTORY_TABLE_NAME, topicId];
            FMResultSet *results = [database executeQuery:query];
            [results next];
            NSData *notesData = [results dataForColumn:@"listChat"];
            [listChat addObject:notesData];
            NSLog(@"notes: %@", listChat);
        }
        [database close];
    }
    return listChat;
}

它打印:

在此處輸入圖片說明

我的代碼有什么問題?

更改代碼:

- (NSMutableArray*)readChatHistoryFromDatabaseWithTopicId:(NSString *)topicId {
    NSMutableArray *listChat = [[NSMutableArray alloc] init];
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSString *path = [self databasePath];
    if ([fileManager fileExistsAtPath:path] == YES) {
        FMDatabase *database = [FMDatabase databaseWithPath:path];
        if (database) {
            [database open];
            NSString *query = [NSString stringWithFormat:@"SELECT * FROM %@ WHERE topicId=\"%@\"", OCSDK_CHAT_HISTORY_TABLE_NAME, topicId];
            FMResultSet *results = [database executeQuery:query];
            while([results next]) {

              NSString *noteString = [results stringForColumn:@"topicId"]
              [listChat addObject: noteString];
              NSLog(@"notes: %@", listChat);
          }
        }
        [database close];
    }
    return listChat;
}

您正在從數據庫中獲取鍵topicId NSData值。 您需要獲取NSString值。 檢查上面的代碼。

看起來notes數組具有一個用於記錄的NSData對象,因此您的代碼沒有錯。 但是我猜測您需要topicId字符串,請改用[results stringForColumn@"topicId"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM