Problemas con parámetros de la función find, para buscar en un datawindows

Tengo un datawindows en blanco, que esta conectado a una base de datos, lo que yo quiero es escribir un texto en un control SingleLineEdit y luego presionar un commandbuton y que al realizar esto, me devuelva los datos guardados en una tabla que coincidan con esta búsqueda, un ejemplo seria buscar el nombre 'Hector' en una tabla de empleados, y que me devolviera todos los empleados con ese nombre, para hacer esto estuve tratando de utilizar la función find, pero al usarla me decía que tenia una sintaxis incorrecta, este es el código que intente usar:

string pos
pos = dw_1.find("nombre ='" + sle_1 .text "'")

Y este es el error que me envío:

Error c0031:Sintax Error

Si alguien me pudiera decir como arreglar este error, o que código debería utilizar para realizar lo que describí antes, estaría agradecido

1 Respuesta

Respuesta
1

Si deseas recuperar los datos puedes usar:

RETRIEVE() .- Recupera filas de la base de datos para un control DataWindow o DataStore. Si los argumentos se incluyen, los valores de los argumentos se utilizan para la recuperación de los argumentos de la instrucción SQL SELECT para el objeto DataWindow.

Tienes que agregar un argumento a tu dw, en tu caso nombre del empleado.

FIND() .- Busca la siguiente fila en un DataWindow o DataStore en el que los datos cumplen una condición especificada.

Esta función la puedes usar una vez que recuperaste los datos en el dw y luego deseas buscar con una condición.

En cuanto por que te sale el erro, es porque la funcion find necesita otros arguemntos para que funcione:

dw_1.find (condicion,li_inicio,li_fin)

dw_1.find ("nombre = '"+sle_1.text +"'",1,dw_1.rowcount())

una duda sobre la función retrieve(), recupera todos los datos de la BD o solo los datos que busque utilizando la función find, y de recuperar solo los de la función find, no me a funcionado para mostrar solo esos datos en el dw, la función retrieve recibe algún parámetro o algo por el estilo?

La función retrieve(arg 1, arg 2) recupera todos los datos de la BD, según la condición que envías en los argumentos, y los muestra en el control datawindow.

La funcion find busca los registros del datawindow recuperados por la función retrieve.

Ejemplo

Select *
From Empleado
Where nombre like :argumento1

En el control datawindow

dw_1.retrieve("A%")

Me mostrará todos los registros de la BD cuyo nombre empiece con "A"

Ahora puedo usar o no la función Find, que me seleccionará el registro del dw

int li_row
sle_1.text = 'Abel'
li_row = dw_1.find ("nombre = '"+sle_1.text +"'",1,dw_1.rowcount())
if li_row > 0 then dw_1.scrolltorow(li_row)

La función find me seleccionará el registro cuyo nombre sea Abel.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas