Buenos días, necesito que me ayuden en el siguiente problema:
Tengo una tabla en Tps que contiene un campo llamado cuenta que es del tipo string y quiero buscar el contenido de ese campo en una tabla que
esta en sql-server que también contiene el campo cuenta del tipo cstring. El problema que tengo es que al realizar un proceso donde recorre la primera tabla busca las coincidencias en la segunda para totalizar un importe, no lo encuentra. El codigo es el siguiente:
set(umsatzfinal)
Loop until access:umsatzfinal.next()
UMZ:Cuenta = UMF:CUENTA
set(umsatz_sql,UMZ:Cuentas)
Loop until access:umsatz_sql.next()
IF UMZ:Cuenta <> L:Cuenta then break. !!!!! NO INGRESA A TOTALIZAR.
L:TOTAL+=UMZ:Importe
END
.......
. .. . ..
........
END
END
Como recien estoy pasando mis tablas a sql no se si para recorrerlas o comparar campos es diferente.
Saludos.
Ramón Rodríguez
C.6.3
Busqueda de un campo string en SQL-Server
-
- Novato
- Mensajes: 31
- Registrado: Vie Jul 22, 2011 4:26 pm
- Contactar:
- Mauricio
- Desarrollador de Clarion
- Mensajes: 1125
- Registrado: Dom Feb 06, 2011 9:34 am
- Ubicación: España
- Contactar:
Re: Busqueda de un campo string en SQL-Server
Por qué no haces un SELECT en SQL pasando como parámetro el texto que buscas?
Algo como: SELECT Sum(Campo a Sumar) FROM TablaSQL WHERE CampoSQL = CampoTPS GROUP BY CampoSQL
Algo como: SELECT Sum(Campo a Sumar) FROM TablaSQL WHERE CampoSQL = CampoTPS GROUP BY CampoSQL
Mauricio, básicamente usando Clarion 6.3
www.tdcsoftware.com y www.clarioneros.com/blog
www.tdcsoftware.com y www.clarioneros.com/blog
-
- Al nivel de RZ
- Mensajes: 160
- Registrado: Mar Mar 01, 2011 8:36 pm
- Contactar:
Re: Busqueda de un campo string en SQL-Server
Hola Ramón:
Te mando como lo haría yo... en principio recortar espacios y llevar a mayúsculas para que las comparaciones entre campos de TPS y SQL sean exactas, además hay una variable "L:Cuenta" que no sé si fue por error o en otro lugar la estás igualando al campo, pero la comparación debería ser entre los campos de la tabla. Como dice Mauricio, sería mejor hacerlo con un SELECT, pero si querés usar el código convencional de Clarion, tal vez esto te ayude:
set(umsatzfinal)
Loop until access:umsatzfinal.next()
CLIP(UPPER(UMZ:Cuenta)) = CLIP(UPPER(UMF:CUENTA))
set(UMZ:Cuentas,UMZ:Cuentas)
NEXT(umsatz_sql)
Loop WHILE CLIP(UPPER(UMZ:Cuenta)) = CLIP(UPPER(UMF:CUENTA)) AND NOT ERRORCODE()
L:TOTAL+=UMZ:Importe
NEXT(umsatz_sql)
END
.......
. .. . ..
........
END
END
Saludos! Ileana
Te mando como lo haría yo... en principio recortar espacios y llevar a mayúsculas para que las comparaciones entre campos de TPS y SQL sean exactas, además hay una variable "L:Cuenta" que no sé si fue por error o en otro lugar la estás igualando al campo, pero la comparación debería ser entre los campos de la tabla. Como dice Mauricio, sería mejor hacerlo con un SELECT, pero si querés usar el código convencional de Clarion, tal vez esto te ayude:
set(umsatzfinal)
Loop until access:umsatzfinal.next()
CLIP(UPPER(UMZ:Cuenta)) = CLIP(UPPER(UMF:CUENTA))
set(UMZ:Cuentas,UMZ:Cuentas)
NEXT(umsatz_sql)
Loop WHILE CLIP(UPPER(UMZ:Cuenta)) = CLIP(UPPER(UMF:CUENTA)) AND NOT ERRORCODE()
L:TOTAL+=UMZ:Importe
NEXT(umsatz_sql)
END
.......
. .. . ..
........
END
END
Saludos! Ileana
-
- Novato
- Mensajes: 31
- Registrado: Vie Jul 22, 2011 4:26 pm
- Contactar:
Re: Busqueda de un campo string en SQL-Server
Muchas gracias a todos, fui por la implementación de la tabla boba y funciono perfecto, renegue un poco con las fechas pero le encontre la vuelta.
Gracias.
Gracias.
¿Quién está conectado?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 43 invitados