Hi,
The leak happens right after ViewDidLoad->getData functions.
So my viewDidLoad calls getData which fetches the data from sqlite DB and create Provider Objects and stores them in a NSMutableArray declared in the appdelegate. Here is complete function
Code:
- (void)getData {
MRAAppDelegate *appDelegate = (MRAAppDelegate *)[[UIApplication sharedApplication] delegate];
if(statementSelectProvider == nil){
const char *sql = "SELECT ProviderMaster_WK, ProviderID, LastName, FirstName, IsNew, City FROM tblProvider WHERE Project_WK=?";
if (sqlite3_prepare_v2(database, sql, -1, &statementSelectProvider, NULL) != SQLITE_OK)
{NSAssert1(0, @"Failed to prepare database with message '%s'.", sqlite3_errmsg(database));}
// Preparing a statement compiles the SQL query into a byte-code program in the SQLite library.
// The third parameter is either the length of the SQL string or -1 to read up to the first null terminator.
}
sqlite3_bind_int(statementSelectProvider, 1, appDelegate.ProjectWK);
// We "step" through the results - once for each row.
while (sqlite3_step(statementSelectProvider) == SQLITE_ROW) {
// The second parameter indicates the column index into the result set.
int iD = sqlite3_column_int(statementSelectProvider, 0);
NSString *PID = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statementSelectProvider, 1)];
NSString *LName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statementSelectProvider, 2)];
NSString *FName = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statementSelectProvider, 3)];
BOOL isNew = sqlite3_column_int(statementSelectProvider, 4);
NSString *city = [NSString stringWithUTF8String:(char *)sqlite3_column_text(statementSelectProvider, 5)];
Provider *objProvider = [[Provider alloc] initWithTitle:iD ProviderID:PID LastName:LName FirstName:FName city:city isNew:isNew];
[appDelegate addProvider:objProvider];
[objProvider release];
}
// "reset" the statement
sqlite3_reset(statementSelectProvider);
if(statementSelectProvider)
{
sqlite3_finalize(statementSelectProvider);
statementSelectProvider=nil;
}
}
Please suggest if anything is wrong
Thanks,
Mubashir