Хранение массива в базе данных SQLite - PullRequest
1 голос
/ 16 апреля 2011

У меня есть 2 столбца типа VARCHAR (1000) и типа TEXT в базе данных SQLite. Мое требование - хранить значения в массиве в БД. Я пытался сохранить значения в массиве в строку, используя цикл for, но как только элемент управления выходит из цикла for, значения, отображаемые для строки, являются только последним элементом в массиве ...

Есть ли способ, с помощью которого я могу напрямую сохранить массив в БД ??

Ниже мой код:

NSString *tempVal=0, *tempFlag=0;
NSString *temp[256], *Flag[256];

    for(int i=0; i<256; i++)
    {
    NSLog(@"HELLO %d", tempVal);
        temp[i] = (NSString*)valMines[i];
        Flag[i] = (NSString*)openFlag[i];

        NSLog(@"ValMines is %d", temp[i]);
        NSLog(@"OpenFlag is %d", Flag[i]);

        tempVal = temp[i];
        tempFlag == Flag[i];

        NSLog(@"ValMines is %d %d", temp[i], tempVal);
    }

NSLog(@"Inside Save Data func");
NSLog(@"ValMines is %d", tempVal);
NSLog(@"OpenFlag is %d", tempFlag);

Будет ли добавить работу над этим? Как?

Ответы [ 2 ]

1 голос
/ 09 сентября 2011

Согласно этому другому посту, SQLite не поддерживает массивы напрямую.Это только делает целые, текст и плавает.

Как сохранить массив в одном столбце в Sqlite3?

0 голосов
/ 16 апреля 2011

Попробуйте это:

NSMutableString *tempVal = [NSMutableString stringWithCapacity:1000];
NSMutableString *tempFlag = [NSMutableString stringWithCapacity:256];

for (int i = 0; i < 256; i++)
{      
    NSLog(@"ValMines is %@", valMines[i]);
    NSLog(@"OpenFlag is %@", openFlag[i]);

    // adding a space between each string
    [tempVal appendFormat:@" %@", valMines[i]];
    [tempFlag appendFormat:@" %@", openFlag[i]];
}

NSLog(@"Inside Save Data func");
NSLog(@"ValMines is %@", tempVal);
NSLog(@"OpenFlag is %@", tempFlag);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...