Создать / использовать пользовательские функции в System.Data.SQLite?
Пользовательские функции и последовательности упорядочения Полная поддержка пользовательских функций и последовательностей упорядочения означает, что во многих случаях, если SQLite не имеет функции, вы можете написать ее самостоятельно на своем любимом языке.NET. Написание UDF и сортировка последовательностей никогда не было проще
Я заметил этот бит в C# SQLite ADO.NET- провайдере, которого я нашел здесь, и у меня были проблемы с пониманием документации о том, как реализовать / использовать пользовательские функции.
Может ли кто-нибудь объяснить, как или предоставить какие-либо рабочие примеры для этого потерянного новичка?
1 ответ
Решение
У Роберта Симпсона есть замечательный пример функции REGEX, которую вы можете использовать в запросах sqlite:
// 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'