Domanda

  

Funzioni definite dall'utente & amp; Sequenze di confronto   Il pieno supporto per le funzioni definite dall'utente e le sequenze di fascicolazione significa che in molti casi se SQLite non ha una funzionalità, è possibile scriverlo da soli nella lingua .NET preferita. Scrivere UDF e fascicolare sequenze non è mai stato così facile

Ho notato questo bit sul C # SQLite ADO.NET provider che ho trovato qui, e ho riscontrato problemi nella comprensione della documentazione su come implementare / utilizzare le funzioni definite dall'utente.

Qualcuno potrebbe spiegare come, o fornire qualche esempio funzionante per questo principiante perso?

È stato utile?

Soluzione

Robert Simpson ha un ottimo esempio di una funzione REGEX che puoi usare nelle tue query 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'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top