Advertise Mobile SDKs Books Events Forum News Social Networking Support Us
Follow @iphonedevsdk on Twitter

Interface 2, Advanced iOS
Mockup & Code Gen
($9.99)

Make your own iPhone apps
and run them live!
(free)

Pic Frame Dynamo: Photo Editing
($0.99)

Abiliator
($1.99)

Want your application or service advertised on iPhone Dev SDK?

Go Back   iPhone Dev SDK Forum

View Single Post
Old 02-12-2010, 10:26 AM   #1 (permalink)
an5w3r_ro
Registered Member
 
Join Date: Jan 2010
Posts: 30
an5w3r_ro is on a distinguished road
Red face sqlite3_prepare_v2 function returns SQLITE_NOTADB

Hello,

I'm trying a simple SQLite tutorial and I have a small problem.
My code is the following:

Code:

-(id) init
{
	// Setup some globals
	databaseName = @"animals.sql";
	
	// Get the path to the documents directory and append the databaseName
	NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
	NSString *documentsDir = [documentPaths objectAtIndex:0];
	databasePath = [documentsDir stringByAppendingPathComponent:databaseName];
	
	return self;
}

-(void) checkAndCreateDatabase{
	// Check if the SQL database has already been saved to the users phone, if not then copy it over
	BOOL success;
	
	// Create a FileManager object, we will use this to check the status
	// of the database and to copy it over if required
	NSFileManager *fileManager = [NSFileManager defaultManager];
	
	// Check if the database has already been created in the users filesystem
	success = [fileManager fileExistsAtPath:databasePath];

	// If the database already exists then return without doing anything
	// TODO uncheck this if(success) return;
	
	// If not then proceed to copy the database from the application to the users filesystem
	
	// Get the path to the database in the application package
	NSString *databasePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:databaseName];
	
	// Copy the database from the package to the users filesystem
	[fileManager copyItemAtPath:databasePathFromApp toPath:databasePath error:nil];
	
	//[fileManager release];
}


-(NSMutableArray*) getBrands {
	
	// Setup the database object
	sqlite3 *database;
	
	// Init the animals Array
	NSMutableArray *brands = [[NSMutableArray alloc] init];
	
	// Open the database from the users filessytem
	if(sqlite3_open([databasePath UTF8String], &database) == SQLITE_OK) {
		
		// Setup the SQL Statement and compile it for faster access
		const char *sqlStatement = "select * from animals";
		sqlite3_stmt *compiledStatement;
		
		NSLog(@"sql run = %i",sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL));
		
		if(sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL) == SQLITE_OK) 
		{
			// Loop through the results and add them to the feeds array
			while(sqlite3_step(compiledStatement) == SQLITE_ROW) 
			{
				
				// Read the data from the result row
				NSString *brandName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)]; 
							
				[brands addObject:brandName];
				
				//[brandName release];
				
			}
		}
		
		// Release the compiled statement from memory
		sqlite3_finalize(compiledStatement);
		
	}
	
	sqlite3_close(database);
	
	return brands;
	
}
The problem is that my database gets copied right, but somehow on the red line above I get return int 26 which means SQLITE_NOTADB -> that my file is not a DB.

My file animals.sql is the following:

Code:
CREATE TABLE animals ( id INTEGER PRIMARY KEY, name VARCHAR(50), description TEXT, image VARCHAR(255) );

INSERT INTO animals (name, description, image) VALUES ('Elephant', 'desc1', 'img1.jpg');
INSERT INTO animals (name, description, image) VALUES ('Monkey', 'desc2', 'img2.jpg');
Any ideas on why I get that error message? I have everything right, the file structure, it copies right where it should be, but somehow it doesn't recognizes it as a DB. I have added also sqlite3.h and libsqlite3.0.dylib. I really don't know what's wrong.
Thank you in advance for taking time to read my post.

Last edited by an5w3r_ro; 02-12-2010 at 10:29 AM.
an5w3r_ro is offline   Reply With Quote
 

» Advertisements
» Online Users: 824
13 members and 811 guests
chiataytuday, GHuebner, ilmman, iOS.Lover, MarkC, matador1978, preussie, rachelxg66, samball, SamorodovAlex, SebLogica, Sophie100, thassman
Most users ever online was 1,387, 04-10-2012 at 04:21 AM.
» Stats
Members: 175,473
Threads: 94,039
Posts: 402,624
Top Poster: BrianSlick (7,978)
Welcome to our newest member, iram91417
Powered by vBadvanced CMPS v3.1.0

All times are GMT -5. The time now is 02:34 AM.
Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.