System.Data.SQLiteでユーザー定義関数を作成/使用しますか?
-
05-07-2019 - |
質問
ユーザー定義関数&照合シーケンス ユーザー定義関数と照合シーケンスの完全サポートにより、多くの場合、SQLiteに機能がない場合は、お気に入りの.NET言語で自分で記述できます。 UDFと照合シーケンスの記述がかつてないほど容易になりました
C# SQLite ADO.NET プロバイダーはここにあり、ユーザー定義関数の実装/使用方法に関するドキュメントの理解に問題がありました。
この失われた初心者向けの方法を説明したり、実用的な例を提供したりできますか?
解決
ロバートシンプソンには、sqliteクエリで使用できるREGEX関数の素晴らしい例があります:
// taken from http://sqlite.phxsoftware.com/forums/p/348/1457.aspx#1457
[SQLiteFunction(Name = "REGEXP", Arguments = 2, FuncType = FunctionType.Scalar)]
class MyRegEx : SQLiteFunction
{
public override object Invoke(object[] args)
{
return System.Text.RegularExpressions.Regex.IsMatch(Convert.ToString(args[1]),Convert.ToString(args[0]));
}
}
// example SQL: SELECT * FROM Foo WHERE Foo.Name REGEXP '$bar'
所属していません StackOverflow