gpt4 book ai didi

objective-c - 查询选择 Sqlite Objective C iphone

转载 作者:行者123 更新时间:2023-12-03 15:50:24 25 4
gpt4 key购买 nike

嗯,我的查询有问题,我不知道为什么!请帮忙

我尝试从名为 moneda 的表中选择一个 ID,并给出类似参数的名称,

这是我的查询方法:

-(int)ConsultaIdMoneda:(NSString*) nombreMonedaParametro
{
int idMonedaObtenido;
NSLog(@" entre a consultar id de la moneda desde el app delegate");
sqlite3 *database;

const char *path = [[[NSBundle mainBundle] pathForResource:@"database2" ofType:@"sqlite"] UTF8String];
if(sqlite3_open(path, &database) == SQLITE_OK)
{
const char *sqlStatement =[[NSString stringWithFormat:@"Select idMoneda from moneda Where nombre = %@",nombreMonedaParametro] cStringUsingEncoding:NSUTF8StringEncoding];

NSLog(@"%s",sqlStatement);
sqlite3_stmt *compiledStatement;
NSInteger result = sqlite3_prepare_v2(database,sqlStatement, -1, &compiledStatement, NULL);
NSLog(@"%s",sqlStatement);
if(result == SQLITE_OK)
{
idMonedaObtenido = [[NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)] intValue];
}
else
{
NSAssert1(0, @"Error . '%s'", sqlite3_errmsg(database));
}
sqlite3_reset(compiledStatement);
sqlite3_finalize(compiledStatement);
}

sqlite3_close(database);
return idMonedaObtenido;
}

这是错误:

2009-12-03 00:28:45.715 BCDTravel[1220:20b] *** Assertion failure in -[BCDTravelAppDelegate ConsultaIdMoneda:], /Users/Mely/Desktop/BCDTravel version 45/Bcd/Classes/BCDTravelAppDelegate.m:101
2009-12-03 00:28:45.717 BCDTravel[1220:20b] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error haciendo el select. 'no such column: euros''

我认为问题出在这一行,但我不知道如何解决建议!!

const char *sqlStatement =[[NSString stringWithFormat:@"Select idMoneda from moneda Where nombre = %@",nombreMonedaParametro] cStringUsingEncoding:NSUTF8StringEncoding];

最佳答案

因为您要传递字符值,所以需要在 SQL 中的参数两边加上引号。

例如:

SELECT idMoneda
FROM moneda
WHERE nombre = '%@'

否则,当编译 SQL 时,您传入的值本身将被视为列名(欧元),而不是 nombre 列的候选值。

建议您考虑使用准备好的语句,而不是“手动”组装字符串。请参阅this related SO question .

关于objective-c - 查询选择 Sqlite Objective C iphone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1838146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com