4
這裏是我的問題,通過終端使用SQLite 3相互作用,可以通過執行這個命令執行存儲在一個txt文件,SQL語句時:如何在sqlite3的通過客觀-C運行SQL腳本文件
.read filename
有沒有辦法通過Objective-C的代碼做這樣的事情?即我已經在代碼中連接了一個sqlite3數據庫文件,並且我想以編程方式運行腳本文件。
這裏是我的問題,通過終端使用SQLite 3相互作用,可以通過執行這個命令執行存儲在一個txt文件,SQL語句時:如何在sqlite3的通過客觀-C運行SQL腳本文件
.read filename
有沒有辦法通過Objective-C的代碼做這樣的事情?即我已經在代碼中連接了一個sqlite3數據庫文件,並且我想以編程方式運行腳本文件。
您可以通過行轉發文件行的內容,或在整體功能exec
我知道這是一個很古老的問題。我只是想我要離開,我只是以防有人使用的代碼人會覺得它有用
-(BOOL)execFile:(NSString*)filepath
{
NSError* error;
NSString* content = [NSString stringWithContentsOfFile:filepath encoding:NSUTF8StringEncoding error:&error];
if(error)
{
return NO;
}
char* execError;
int x = sqlite3_exec(_database, [content UTF8String], nil, nil, &execError);
if(execError)
{
NSLog(@"%s", execError);
}
return x == SQLITE_OK;
}
感謝您的答覆,所以,我想這意味着我必須將文件讀入字符串自己,然後把整個作爲一個大的SQL語句執行呢? – 2010-08-15 22:00:06
這是我看到的唯一可行的解決方案。我也考慮過控制進程的標準輸入並傳遞命令讀入它,但我不確定這是否可行。你可以試試,但正如我所說不知道它是否有效。 – schoetbi 2010-08-15 22:10:25
謝謝,我試圖一次運行腳本,但它沒有奏效。然後我讀入文件並逐行執行,賓果!再次感謝。 – 2010-08-15 23:02:09