Я сделал приложение для iPad, в котором
Я хочу вставить запись в таблицу базы данных, но не могу сделать то же самое.
вот мой фрагмент кода,
-(void) insertRecordIntoTableNamed: (NSString *) symbol{
NSString *sql = [NSString stringWithFormat:@"INSERT INTO recentquotes ('symbol', 'dt_tm') VALUES ('%@',datetime())",symbol];
NSLog(@"sql=%@",sql);
char *err;
if (sqlite3_exec(db, [sql UTF8String], NULL, NULL, &err) != SQLITE_OK)
{
sqlite3_close(db);
NSAssert(0, @"Error updating table.");
}
}
мой NSLog показывает:
sql=INSERT INTO recentquotes ('symbol', 'dt_tm') VALUES ('PATNI',datetime())
это утверждение верно, но я не вижу VALUES PATNI
иdatetime()
в моей таблице базы данных
вот остаток кода,
NSString *filePahs = Nil;
-(NSString *) filePath {
filePahs=[[NSBundle mainBundle] pathForResource:@"companymaster" ofType:@"sql"];
NSLog(@"path=%@",filePahs);
return filePahs;
}
результат вышеупомянутого метода:
path = / Users / krunal / Library /Поддержка приложений / iPhone Simulator / 5.0 / Приложения / 9FF61238-2D1D-4CB7-8E24-9AC7CE9415BC / iStock kotak.app/companymaster.sql
-(void) openDB {
//---create database---
if (sqlite3_open([[self filePath] UTF8String], &db) != SQLITE_OK )
{
sqlite3_close(db);
NSAssert(0, @"Database failed to open.");
}
}
-(void) getAllRowsFromTableNamed: (NSString *) tableName {
//---retrieve rows---
NSString *qsql = @"SELECT * FROM recentquotes";
sqlite3_stmt *statement;
if (sqlite3_prepare_v2( db, [qsql UTF8String], -1, &statement, nil) ==
SQLITE_OK) {
NSLog(@"b4 while");
while (sqlite3_step(statement) == SQLITE_ROW)
{
char *field1 = (char *) sqlite3_column_text(statement, 0);
NSString *field1Str = [[NSString alloc] initWithUTF8String: field1];
[recentqotarray addObject:field1Str];
[field1Str release];
}
//---deletes the compiled statement from memory---
sqlite3_finalize(statement);
NSLog(@"recentqotarray=%@",recentqotarray);
}
}
edit
я написал это, и когдая проверил свой журнал я получил вот так, "в поиске данных", я не получил свой sql = ...
- (void) finddata
{
NSString *databasePath;
const char *dbpath = [databasePath UTF8String];
sqlite3_stmt *statement;
NSLog(@"in finddata");
if (sqlite3_open(dbpath, &db) == SQLITE_OK)
{
NSString *querySQL = [NSString stringWithFormat: @"SELECT * FROM recentquotes"];
NSLog(@"sql=%@",querySQL);
const char *query_stmt = [querySQL UTF8String];
if (sqlite3_prepare_v2(db, query_stmt, -1, &statement, NULL) == SQLITE_OK)
{
while (sqlite3_step(statement) == SQLITE_ROW)
{
NSLog(@"Inside recent quote table");
char *field1 = (char *) sqlite3_column_text(statement, 0);
NSLog(@"Column name=%s",field1);
NSString *field1Str = [[NSString alloc] initWithUTF8String: field1];
[recentqotarray addObject:field1Str];
NSLog(@"array=%@",recentqotarray);
}
sqlite3_finalize(statement);
}
sqlite3_close(db);
}
}
Заранее спасибо