2010-11-21 11 views
2

私は現時点でiPhoneアプリケーション用にFMDBを使用していますが、私はそれを探しています...大丈夫です。これは本当に小さなSQLiteラッパーです。FMDB SQLiteラッパーとユーザー定義/カスタム関数

FMDBのGitHub: https://github.com/ccgus/fmdb

唯一の問題は、私はカスタム関数を使用する必要てるです。 SQLiteのでは私は簡単に次の構文を使用してこれを行うことができます。FMDBを除き

sqlite3_create_function(database, "custom", 4, SQLITE_UTF8, NULL, &customFunc, NULL, NULL); 

を私は、カスタム関数を使用する方法があると思いませんか?

私が間違っている場合は私を修正してください。どんな助けでも大歓迎です。

+0

FMDBは、ラッパーのような軽量JDBCです。あまりにも多くのカスタマイズをサポートしていません。私はsqlite3の機能に深く関わることなく、基本的なSQLクエリを処理するのが好きです。 – karim

+0

@karim iPhone向けにカスタム関数を扱う他のSQLiteラッパーをお勧めしますか? – fuzz

+0

申し訳ありませんが、私は分かりません。 – karim

答えて

1

FMDBはオープンソースなので、新しいSQLite関数を作成するためにラッパーメソッドを追加することができます。難しいことではありません。他のラッパーメソッドをテンプレートとして使用して、これをどのように実行する必要があります。

あなたの追加情報をコミュニティに戻すことができますか?

+0

それは考えです、私は実際にそれに亀裂があるかもしれません。 – fuzz

+0

またはFMDBのカテゴリを作成するだけです(https://github.com/ccgus/fmdb/blob/master/src/FMDatabaseAdditions.[hm] –

+0

@Fulvio - Cesarは短手を使用していました。彼は、その拡張子を除いて同じ2つのURLがあることを知らせています。 [hm] – Jasarien

1

は、私は、これは古い質問ですけど、次のように動作するはずです:

FMDatabase *database = [FMDatabase databaseWithPath:dbPath]; 

[database open]; 

sqlite3_create_function([database sqliteHandle], "distance", 4, SQLITE_UTF8, NULL, &distanceFunc, NULL, NULL); 

FMResultSet *results = [database executeQuery:@"SELECT * from stores WHERE distance(latitude, longitude, -37.77023, 148.089688) < 1"]; 

もちろん、あなたがdistancedistanceFuncの代わりにcustomcustomFunc(または何でも)を使用したいが、あなたのアイデアを得ます。

関連する問題