#import "DataArgomenti.h"
#import "iIngAppDelegate.h"
#import "ContenutoObjectArgomento.h"
#import "ArgomentiController.h"
#import "ListView.h"
@implementation DataArgomenti
@synthesize arrayArgomenti;
-(void) path {
// Override point for customization after application launch.
// Setup some globals
databaseName = @"ARGOMENTI.sqlite";
// 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];
// Execute the "checkAndCreateDatabase" function
[self checkAndCreateDatabase];
// Execute the "readArgFromDatabaseMaterie" function
[self readArgFromDatabaseArgomenti];
}
-(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
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];
}
-(void) readArgFromDatabaseArgomenti {
ListView *my_ID = [[ListView alloc] init];
variabileID = [my_ID varID];
NSLog(@"VariabileID da lettura database = %d",variabileID);
// Setup the database object
sqlite3 *database;
// Init the argoments Array
arrayArgomenti = [[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 = [[NSString stringWithFormat:@"select * from ARGOMENTO WHERE id_materia='%d'",variabileID] UTF8String];
// const char *sqlStatement = "select * from ARGOMENTO";
sqlite3_stmt *compiledStatement;
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 *aID = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 0)];
NSString *aIDMateria = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 1)];
NSString *aDescArgomento = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];
// Create a new argoments object with the data from the database
ContenutoObjectArgomento *contenutoArgomento = [[ContenutoObjectArgomento alloc] initWithName:aID idMateria:aIDMateria descArgmento:aDescArgomento];
[arrayArgomenti addObject:contenutoArgomento];
[contenutoArgomento release];
}
}
// Release the compiled statement from memory
sqlite3_finalize(compiledStatement);
}
sqlite3_close(database);
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[arrayArgomenti release];
[super dealloc];
}
@end