49

ユーザー定義関数と照合シーケンス ユーザー定義関数と照合シーケンスが完全にサポートされているため、多くの場合、SQLite に機能がない場合でも、お気に入りの .NET 言語で自分で記述できます。UDF と照合順序の作成がこれまでになく簡単になりました

ここにある C# SQLite ADO.NETプロバイダーでこのビットを見つけ、ユーザー定義関数の実装/使用方法に関するドキュメントを理解するのに問題がありました。

この失われた初心者のために、誰かが方法を説明したり、実際の例を提供したりできますか?

4

1 に答える 1

65

Robert Simpsonは、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'
于 2008-10-05T23:33:44.073 に答える