• Domingo 22 de Diciembre de 2024, 18:44

Autor Tema:  Error En Expresion  (Leído 1794 veces)

alexis17

  • Miembro MUY activo
  • ***
  • Mensajes: 378
    • Ver Perfil
    • http://www.codigobasico.net
Error En Expresion
« en: Jueves 20 de Marzo de 2008, 22:47 »
0
buenas tardes

estoy intentando hacer un drap droup con dos data windows

para luego grabar la informacion que pase del otro

estoy colocando esto antes de hacer el insert

IF is_dw_drag = 'dw_tipo_ordenes' THEN

//ls_find = "cod_asoc =  " +is_tipo  
   
ls_find = "cod_asoc = ' " +is_tipo + " ' "

ll_enc = dw_ordenes_asociadas.Find(ls_find, 1,     dw_ordenes_asociadas.RowCount())


estoy pasando informacion del dw_tipo_ordenes a el dw_ordenes_asociadas

el campo cod_asoc en mi tabla es varchar
y la variable is_tipo es una variable de intancia tipo string

si lo hago con
s_find = "cod_asoc = ' " +is_tipo + " ' "
no me manda error y me permite pasar bien los datos al otro data windows me aparecen aya, pero el problema es que si escojo otro tipo de orden que se llame igual de igual manera me lo deja pasar al otro data windows

pero si lo ago con
ls_find = "cod_asoc =  " +is_tipo

entonces me manda un error el siguiente

Expression is not valit

porque lo que trato de hacer es buscar si no hay alguna orden con ese mismo tipo si no existe entonces me deje insertar  para eso coloque

if ll_enc = 0 then

pero cuando le pongo
ls_find = "cod_asoc =  " +is_tipo

me devuelve -5

pero con
s_find = "cod_asoc = ' " +is_tipo + " ' "

me da 0

/**************************************************

esto mismo yo lo utilice en otros dos data windows y no me dio problemas me pasaban los datos y me permitia grabar sin problemas

y hacia esto

IF is_dw_drag = 'dw_proveedores' THEN
        ls_find = "cod_proveedor = " +string( il_cod_prov)
   ll_enc = dw_provedores_material.Find(ls_find, 1,        
        dw_provedores_material.RowCount())

con la diferencia que el campo cod_proveedor es un campo numerico
y la variable l_cod_prov  es una variable de intancia tipo long

asi que debe ser algo que estoy escribiendo mal que no me funciona bien algo

ya que cuando lo puse con comilla me mando un codigo ejemplo

'AW789'   pero el codigo en la base de datos es AW789
Cada dia aprendo algo nuevo

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Error En Expresion
« Respuesta #1 en: Jueves 20 de Marzo de 2008, 23:05 »
0
Cita de: "alexis17"
buenas tardes
el campo cod_asoc en mi tabla es varchar
s_find = "cod_asoc = ' " +is_tipo + " ' "

Pues si es varchar tiene que llevar comillas, sino no podras buscarlo, podrias dar una explicacion mas clara?

Cita de: "alexis17"
ls_find = "cod_asoc =  " +is_tipo
entonces me manda un error el siguiente
Expression is not valit


Mira este hilo es con el metodo SetFilter pero las condiciones son iguales que para Find

http://foros.solocodigo.com/index.php?show...ndpost&p=106146

Tambien pueds mirar esto por si requieres que la cadena contenga el caracter '

http://foros.solocodigo.com/index.php?showtopic=32301

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================

alexis17

  • Miembro MUY activo
  • ***
  • Mensajes: 378
    • Ver Perfil
    • http://www.codigobasico.net
Re: Error En Expresion
« Respuesta #2 en: Sábado 22 de Marzo de 2008, 19:44 »
0
gracias, ya me funciona parece que el problema era que estaba colocando separada las comillas y las comillas doble


otra pregunta, para ver si alguien me podria esplicar, la logia de esto

ll_enc = dw_ordenes_asociadas.Find(ls_find, 1, dw_ordenes_asociadas.RowCount())


el numero 1 vendria a hacer el numero de fila verdad?

con el .find me permite comparar que no hay ese dato en el data windows es que  havia cojido ese codigo lo modifique y me funciono pero no sabia el porque asi que no queria tener esa duda y no hacer algo pro hacer

se que con el rowcount uno puede saber el numero de filas de un data windows
Cada dia aprendo algo nuevo

F_Tanori

  • Moderador
  • ******
  • Mensajes: 1919
  • Nacionalidad: mx
    • Ver Perfil
Re: Error En Expresion
« Respuesta #3 en: Sábado 22 de Marzo de 2008, 22:58 »
0
Si , el numero positivo que devuelva es el numero de la primera fila encontrada segun el criterio ,

Citar
Find method (DataWindows)

Return value

Returns the number of the first row that meets the search criteria within the search range. Returns 0 if no rows are found and one of these negative numbers if an error occurs:

-1  General error
-5  Bad argument

If any argument's value is NULL, in PowerBuilder and JavaScript the method returns NULL.

Saludos
" ExIsTo y A vEcEs PiEnSo "

NOTA:
===========================================================================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
===========================================================================================================================