sc_lookup(Conjunto de datos, "Comando SQL", "Conexión")

 

Esta macro permite al usuario ejecutar comandos SQL y devuelve el resultado a la variable "conjunto de datos". La estructura del "conjunto de datos" es una matriz (línea / columna).

El parámetro "conexión" es opcional. Se usa cuando el comando se ejecuta en una base de datos distinta de la especificada para la aplicación.
Nota: El parámetro de conexión no acepta variable. Debe ingresar el nombre de la conexión que ejecutará el comando SQL.


Ej. 1:
sc_lookup(dataset, "select customer_id, customer_name, credit_limit from customers" );

Para tener acceso a la primera línea (Dataset), use:
{customer_id} = {dataset[0][0]};
{customer_name} = {dataset[0][1]};
{credit_limit } = {dataset[0][2]};

Para tener acceso a la segunda línea (Dataset), use:
{customer_id} = {dataset[1][0]};
{customer_name} = {dataset[1][1]};
{credit_limit} = {dataset[1][2]};

Si ocurre un error en la ejecución del comando SQL, la variable atribuida al conjunto de datos volverá como "falso" y el mensaje de error estará disponible en la variable "dataset_erro". También es importante verificar los datos devueltos seleccionados, para evitar el acceso a variables inexistentes, una vez que la matriz de salida solo se creará si el comando select devuelve datos.


Ej. 2:
sc_lookup(my_data, "select customer_id, customer_name, credit_limit from customers");
if ({my_data} === false)
{
echo "Access error. Message=". {my_data_erro} ;
}
elseif (empty({my_data}))
{
echo "Select command didn't return data";
}
else
{
{customer_id} = {my_data[0][0]};
{customer_name} = {my_data[0][1]};
{credit_limit} = {my_data[0][2]};
}



Ej. 3: El comando SQL también puede estar compuesto de campos de aplicación (variables locales) o de variables globales:

sc_lookup(dataset, "select order_value from orders where clienteid = '{customer_id} ' and salesman_id = [var_glo_salesman]");

Nota: El comando siempre debe terminar con punto y coma ";".

Nota 2: Para obtener un gran resultado devuelto en el conjunto de datos, recomendamos el uso de la macro sc_selec en lugar de esta.