SQLite3の構文(その4)
ここんところ忙しくて・・・。
年末までなかなか更新できそうにないです(TT
開発中のPGも作り直そうとして停滞中です。。。。
SQLiteをクラス化したものを作ってみました。
とりあえず、Insert、Update、Delte用の関数のみです。
Select文は、動的確保のものを作ってはいますが、
誠に申し訳ございませんが、公開を控えさせていただきます。
(間違っていて突っ込まれそうですので・・・・・)
んで、ソースです。
いつもの通り、コメントが少ない全くないですが(^^;
SqlAccessClass.h
#import <Foundation/Foundation.h>
#import <sqlite3.h>@interface SqlAccessClass : NSObject {
NSString *nsPath;
}
@property (nonatomic, retain) NSString *nsPath;
- (id) init:(NSString *)dbName;
- (int) execute:(NSString *) setSQL;
@end
SqlAccessClass.m
#import "SqlAccessClass.h"@implementation SqlAccessClass
@synthesize nsPath;- (id) init:(NSString *)dbName
{
self = [super init];
if (self != nil )
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:dbName];
nsPath = [[NSString alloc] initWithString:path];
}
return self;
}- (int) execute:(NSString *) setSQL
{
int iResult = SQLITE_OK;
NSString * strTemp;sqlite3 *database;
NSMutableArray *retArray = [NSMutableArray arrayWithCapacity:1];
char *errorMsg;
if (sqlite3_open([nsPath UTF8String], &database) == SQLITE_OK )
{
iResult = sqlite3_exec ( database,[setSQL UTF8String],NULL,NULL,&errorMsg);if (iResult != SQLITE_OK)
{
strTemp = [[NSString alloc] initWithUTF8String:errorMsg];
NSLog(@"%@:NG(%@)",setSQL , strTemp);
[strTemp release];
}
sqlite3_close(database);
}
return iResult;
}
@end
使い方
NSMutableArray *retArray;
SqlAccessClass *sqlAccess = [[SqlAccessClass alloc] init:@"catnap.sqlite"];int iResult = [sqlAccess execute:@"CREATE TABLE TEST_TABLE ( TIME_DATA INTEGER NOT NULL , NUM INTEGER NOT NULL );"];
以上。