2008-10-05 17 views
35

Funciones definidas por el usuario & Secuencias de clasificación El soporte total para funciones definidas por el usuario y secuencias de clasificación significa que en muchos casos si SQLite no tiene una función, puede escribirla en su idioma .NET favorito. La escritura UDF y los órdenes de clasificación nunca ha sido más fácilCrear/Usar funciones definidas por el usuario en System.Data.SQLite?

vi este bit en el proveedor de C# SQLite ADO.NET l encontrado aquí, y estaba teniendo problemas para entender la documentación sobre cómo implementar funciones definidas por el usuario/uso.

¿Alguien podría explicar cómo, o proporcionar algún ejemplo de trabajo para este novato perdido?

Respuesta

50

Robert Simpson tiene un gran ejemplo de una función de REGEX que puede utilizar en sus consultas 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' 
+5

Como referencia, [ver esta respuesta] (http://stackoverflow.com/a/26155359/1352471) cómo vincularlo a una SQLiteConnection. – metadings

+0

Nice Answer it's usedful para mí también –

Cuestiones relacionadas