Persiste error PB7 con ASA vía ODBC

Hola experto, verifique configuracion , DelimitIdentifier='NO', el error es el siguiente: ls_nmbre = "%" + trim (sle_nmbre.text) + "%"
ls_cndcion = " WHERE prdctos.nmbre_prdcto LIKE ~"" + ls_nmbre + "~""
dw_dtos.Modify("DataWindow.Table.Select='" + ls_orgnal + ls_cndcion + "'")
Al ejecutar: Permito digitar una secuencia de caracteres para que se ejecute el anterior script y genera el error: Select error SQLSTATUS = S0002 [Sybase][ODBC drive][Adaptive Server AnyWhere] Column not fount (secuencia de caracteres digitado) Column not found. Al parecer al realizar el Modify toma el string encerrado en comillas dobles y asume que es una columna de la tabla. Si en vez de un string lo que selecciono es un campo numérico no hay problema, lo mismo si ejecuto esta misma acción conectada nativamente a SQLServer o a Sybase. Que parámetro debo cambiar, necesito su ayuda.. Muchas gracias
Al ejecutar la aplicación (

1 respuesta

Respuesta
1
Hay varias cosas que hay que tener en cuenta.
Quiero entender que lo que necesitas es no solo condicionar simplemente la búsqueda, sino que la columna,
El problema que tienes es que esto debe ser presentado en un datawindows,
lo que sucede con tu problema es que las columnas que tienes en pantalla, no necesariamente son las que están siendo seleccionadas en el select, puesto que por lo visto no coinciden, solo funcionará cuando las mismas columnas que se pintan en la pantalla, también estén seleccionadas en el select.
Creo que lo más conveniente en este caso es que desistas de hacer un datawindow basado en una tabla, y te inclines por hacer un external datawindow, donde integres el resultado que de, simplemente de un select incluido en un script
Por ejemplo
el select de un cliente.
select nombre,
codigo,
direccion,
telefono
from clientes
where pais like :ls_like
using sqlca;
Esto depende del valor de ls_like así buscará el resultado, seleccionando todas las columnas de la tabla clientes,
Sin embargo cuando ingreses en una pantalla (me imagino), el nombre de la columna, la cual podrías definirla en un dropdownlistbox, para que el usuario no incluya nada que no necesariamente exista, dependiendo de su selección así será el valor que integres a la columna de la ventana o external datawindow, por ejemplo si el usuario selecciono nombre, el resultado en el campo del dropdownlistbox será nombre, luego con un choose case, seleccionas el valor según la selección, y lo integras a una variable tipo string,
Cuando salga del choose case, la variable deberá tener un valor, este valor es integrado al external datawindow, por medio de un SetItem(<row>, 'nombre de la columna', <valor>)
Lo que termina pintándose es el valor de la columna seleccionada.
Como te dije al principio, el problema es que el datawindow contiene en pantalla un nombre de control asociado a un nombre de columna, y claro, al este no estar en el select, y querer ser pintado en pantalla, da un error porque no tiene referencia, tu problema no es conexión, no es red, no es permisos, no es base de datos., simplemente es un problema de concepto.
Prueba hacer lo que te propongo y estoy seguro que te va a funcionar.
Espero esto sea de utilidad para resolver tu problema
saludos
agdsys

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas