Página 1 de 1

Busqueda de un campo string en SQL-Server

Publicado: Mié Ago 08, 2018 3:06 pm
por euro500g
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

Re: Busqueda de un campo string en SQL-Server

Publicado: Vie Ago 10, 2018 12:32 pm
por Mauricio
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

Re: Busqueda de un campo string en SQL-Server

Publicado: Mar Ago 14, 2018 2:57 pm
por duenda
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