hdolder.com srl

  hdc Home    |    Contenido    |    KO1    |    Director    |    Direcciones    |    email
  Formato BSQ (BScriptQuery)

 

 

 

                                                   v181

Los  métodos BSQFindAll y BSQFindOne de la interface IC permiten realizar búsquedas en InstanceCollections usando BSXs (BScript eXpressions)  que tienen un formato especial denominado BSQ (BScriptQuery).

Una BSX  BSQ (BSQ) especifica un criterio de selección que se aplicara a todas las Instances de una  InstanceCollection para extraer aquellas que verifican el criterio. 

Las BSQs deben devolver T para las Instances que verifican el criterio y NIL en caso contrario.

En las BSQ se debe agregar el prefijo "@" a los "column-names" de la InstanceCollection que intervienen en el criterio de selección.

Así si la InstanceCollection tiene una columna cuyo nombre es "Birthdate" en la BSQ debe usarse "@Birthdate".

El prefijo "@" indica al procesador BScript que debe buscar el valor en una columna determinada de la Instance que esta procesando.

Por ejemplo, la sentencia

BL a = icEmployees.BSQFindAll("(between @Birthdate #1950-01-01# #2005-01-01#)"); 

devuelve una lista que contiene las IT de todos las personas en la InstanceCollection "icEmployees" que nacieron entre el 1950-01-01 y el 2005-01-01 (incluidos ambas fechas limite).

La función "between" es una función predefinida en BScript que opera con fechas, números y strings.

En la BSQ se pueden utilizar los operadores "and", "or" y "not" para combinar y estructurar las condiciones.

En la BSQ pueden usarse funciones previamente definidas y también funciones lambda definidas en la misma BSQ.

El siguiente ejemplo incluye los operadores "and" y "eq":

BL a = icPersons.BSQFindAll("(and (between @Birthdate #1950-01-01# #2005-01-01#) (eq @LastName "Brossens"))");  

Las funciones predefinidas "like" y "scontains" operan sobre strings:

BL a = icPersons.BSQFindAll("(and (between @Birthdate #1950-01-01# #2005-01-01#) (like "Bross" @LastName))");

BL a = icPersons.BSQFindAll("(and (between @Birthdate #1950-01-01# #2005-01-01#) (scontains "oss" @LastName))"); 
Toda la funciónalidad del lenguaje BScript esta disponible para las búsquedas y la extensibilidad de BScript permite incorporar nuevas funciones para ser utilizadas en los criterios de selección (ver BScript - Extensión).

Ver también

 

  TBW The BLOCKS World

©2012 hdolder.com srl  

C80509A
2011-12-16