XWhereIn_ Method (String, BsonArray) |
Namespace: Biolomics.SharedClasses
Imports System Imports System.Collections Imports Biolomics.BioCallback Imports Biolomics.SharedClasses Imports Biolomics.Utility.Constants Public Class MyNewClass ' This function is called when running this script Shared Sub Main() ' Create an instance of class MyNewClass and call its functions Dim c As New MyNewClass c.RunQuery() End Sub Public Sub RunQuery() ' ***** Run a query in the current SearchPage ***** Dim Where As XWhere = XWhere.GT(StaticFields.id, 2).And_(StaticFields.id, XWhere.OperationEnum.LT, 8).Or_(StaticFields.name, XWhere.OperationEnum.EndWith, "877") ' ***** Numerical queries ***** Where = XWhere.Eq(StaticFields.id, 5) ' WHERE Id = 5 Where = XWhere.NE(StaticFields.id, 5) ' WHERE Id != 5 Where = XWhere.GT(StaticFields.id, 5) ' WHERE Id > 5 Where = XWhere.GTE(StaticFields.id, 5) ' WHERE Id >= 5 Where = XWhere.LT(StaticFields.id, 5) ' WHERE Id < 5 Where = XWhere.LTE(StaticFields.id, 5) ' WHERE Id <= 5 ' ***** String queries ***** Where = XWhere.Eq(StaticFields.name, "CBS 14") ' WHERE Name = 'CBS 14' Where = XWhere.NE("name", "CBS 14") ' WHERE Name != 'CBS 14' Where = XWhere.StartWith("name", "Apis") ' WHERE Name LIKE 'Apis%' Where = XWhere.Contains("name", "mell") ' WHERE Name LIKE '%mell%' Where = XWhere.EndWith("name", "mellifera") ' WHERE Name LIKE '%mellifera' ' ***** Numerical list queries ***** Dim NumArray As Integer() = {1, 3, 5, 7, 9} Dim NumList As New BsonArray(NumArray) ' from an array of values NumList.Add(11) ' add a value Where = XWhere.In_(StaticFields.id, NumList) ' WHERE Id IN(1, 3, 5, 7, 9, 11) ' ***** String list queries ***** Dim StrArray As String() = {"John", "Bryan", "Bob"} Dim StrList As New BsonArray(StrArray) ' from an array of values Where = XWhere.In_(StaticFields.name, StrList) ' WHERE Name IN("John", "Bryan", "Bob") ' ***** Combining queries ***** Where = XWhere.GTE(StaticFields.id, 5).And_(StaticFields.id, XWhere.OperationEnum.LT, 20) ' WHERE Id >= 5 AND Id < 20 ' the operation given as the second parameter has the same name as ' the static functions above: Ep, LT, LTE, GT, etc. ' There is no limit in the combinations, executed from left to right Where = XWhere.GTE(StaticFields.id, 5).And_(StaticFields.name, XWhere.OperationEnum.StartWith, "Vespa"). And_("comment", XWhere.OperationEnum.Contains, "invasive") ' ***** Checking for NULL ***** Where = XWhere.IsNull("name") ' WHERE Name is null Where = XWhere.IsNotNull("name") ' WHERE Name is not null ' ***** Complex queries with bitwise pre-processing ' checking for bit #3 (= 4) in a value Where = XWhere.NE(XWhere.PreOperationEnum.BitAnd, 4, "read_group", 0) ' WHERE (ReadGroup AND 4) <> 0 ' checking for even values: bit #0 is not set Where = XWhere.Eq(XWhere.PreOperationEnum.BitAnd, 1, "read_group", 0) ' WHERE (ReadGroup AND 1) = 0 ' ***** Regular expressions ***** Where = XWhere.RegExp("name", "[[:<:]]invasive[[:>:]]") ' WHERE Name REGEXP '[[:<:]]invasive[[:>:]]' ' ***** Loading everything or nothing ***** Where = XWhere.All Where = XWhere.Empty ' ***** Check for the content of a Where Clause ***** If Where.IsEmpty OrElse Where.IsAll Then ' ... End If End Sub End Class