我有一个包含SQLite3数据库(2-3表)的iPhone应用程序。当我建立它在模拟它的正常工作,但同时对iPhone设备进行部署它给一个弹出消息 - “数据库错误,无法打开数据库槽糕。” 虽然康寿它显示:用SQLite3部署iPhone应用程序
警告:无法阅读/Developer/Platforms/iPhoneOS.platform/DeviceSupport/4.2.1(8C148)/Symbols/usr/lib/info/dns.so(找不到文件)的符号。
需要帮助(我是新来的iPhone应用程序和sqlite3的) 代码:
int result;
result=sqlite3_open("/Users/saggezza/Desktop/TimeTrackerApp/login.db",&database);
- (IBAction为)button_login {
sqlite3_exec(database, "CREATE TABLE IF NOT EXISTS login(ID INTEGER PRIMARY KEY AUTOINCREMENT, Username varchar,Password varchar,Name Text)",
NULL, NULL, NULL);
int ret = sqlite3_step(statement);
sqlite3_reset(statement);
if (ret == SQLITE_DONE)
{
sqlite3_finalize(statement);
sqlite3_close(database);
}
const char *sqlStatement1= "select * from login";
sqlite3_prepare_v2(database, sqlStatement1, -1, &statement,nil);
while (sqlite3_step(statement)==SQLITE_ROW)
{
NSString *uname=[[NSString alloc]initWithUTF8String:(char *)sqlite3_column_text(statement, 1)];
NSString *pwd=[[NSString alloc]initWithUTF8String:(char *)sqlite3_column_text(statement, 2)];
ename =[[NSString alloc]initWithUTF8String:(char *)sqlite3_column_text(statement, 3)];
if ([(textField1.text) isEqualToString:uname] && [(textField2.text) isEqualToString:pwd])
{
TimeTrackerAppAppDelegate *timeTracker=(TimeTrackerAppAppDelegate *)[[ UIApplication sharedApplication] delegate];
Mainpage *sView = [[Mainpage alloc] initWithNibName:@"Mainpage" bundle:nil ];
timeTracker.name=ename;
[self.navigationController pushViewController:sView animated:YES];
// [self presentModalViewController:sView animated:YES];
return;
}
}
谢谢!
“login.db”是否存储在本地计算机上?您必须提供包中的db文件,然后将其复制到文档目录,如[这里]所述(http://www.techotopia.com/index.php/IPhone_Database_Implementation_using_SQLite#Preparing_and_Executing_a_SQL_Statement) – Sailesh 2011-02-23 08:12:10
我有我的db文件应用程序文件夹也提供给资源。 仍然没有得到。它在我的模拟器上工作,但在设备上显示错误。 :( – Akshay 2011-02-23 08:44:59