Power Builder - Error en una Select

 
Vista:

Error en una Select

Publicado por Carolina (150 intervenciones) el 04/04/2017 18:47:06
Hola amigos, tengo un problema: tengo en mi sistema, en un script, la siguiente instruccion:

Select count(*), id_entidad
Into :contador, :vid_ent
From Hmv_entidades
Where Upper(n_entidad) = Upper(:vn_entidad_ba)
Group by id_entidad;

Al ejecutar el sistema me da error: "Argument data type text is invalid for argument of Upper function"
Pero si lo ejecuto en el SQL Server Management Estudio me ejecuta la instrucción correctamente.
Yo estoy usando Power Builder . classic y SQL Server 2014
Esto me paso ahora que migre la version del sistema de Power 9.0 al Power 12.5, en el cliente funciona correctamente porque todavia esta funcionando el sistema con la version 9 de power builder , pero lo quiero migrar y me encuentro que este punto no me funciona (ltengo que comparar si o si los nombres para que no me ingresen mas de 1 entidad con los mismos nombres no?)
Alguno sabe que puede pasar? porque yo puedo solucionarlo (puedo sacar a una variable el valor de Upper y comparar directamente pero la verdad es que tengo de estas instrucciones en mas de un script por eso si alguien sabe que puede ser desde ya AGRADEZCO LA SOLUCION!!!!
Carolina
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Error en una Select

Publicado por FRANCISCO PORTALES (214 intervenciones) el 05/04/2017 08:24:13
antes de hacer upper trate de hacer un convert a varchar(100) o algo similar....el error te dice que no poder hacer upper un campo tipo text,

se me ocurre asi

Select count(*), id_entidad
Into :contador, :vid_ent
From Hmv_entidades
Where Upper(convert(varchar(100),n_entidad)) = Upper(:vn_entidad_ba)
Group by id_entidad;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error en una Select

Publicado por Carolina (150 intervenciones) el 05/04/2017 16:54:36
Hola Francisco, gracias por tu respuesta! Mirá el campo n_entidad ya es una campo definido en la tabla como "varchar(70)" asique no haría efecto el ponerle la funcion convert(varchar(100))
Yo por ahora lo resolví el problema haciendo el upper de la variable antes y comparando luego con la variable pero ya en mayusculas, hice así:

1
2
3
4
5
6
7
vn_aux = Upper(vn_entidad_ba)
 
Select count(*), id_entidad
	Into :contador, :vid_ent
	From Hmv_entidades
	Where Upper(n_entidad) =:vn_aux
	Group by id_entidad;


y esto funcionó correctamente, pero el tema es que yo quería saber porqué me pasa, porque ahora voy a tener que cambiar varias instrucciones entonces, es decir, no es solo migrar de power 9 a 12.5 hay que cambiar algunas formas,Lo que no se si les conté, es que esto me pasa porque ahora tengo SQL Server 2014 y cuando lo programé primero empecé con SQL Server 2000, y luego migré al SQL Server Express 2005 (que así es como esta funcionando el sistema en los clientes) pero, al instalar el power 12.5 en la notebook que tiene windows 10, me tuve que instalar el SQL Server 2014 porque el 2005 me daba error y no me lo instalaba para windows 10.
Yo no pregunté esto en el foro de SQL Server porque esa misma instruccion en el Management Studio me corre perfectamente y me trae los datos correctos,
Bueno, muchas gracias igual!!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Leonardo Daniel A.
Val: 821
Oro
Ha mantenido su posición en Power Builder (en relación al último mes)
Gráfica de Power Builder

Error en una Select

Publicado por Leonardo Daniel A. (481 intervenciones) el 06/04/2017 05:52:03
Hola que bueno que te funciono, pero si se me hace raro porque el select campo into :variable where campo = :variable asi debe ser... es decir cuando usas variables usas los 2 puntos para meter el valor de un campo en la variable o para asignar el valor de la variable al campo en un where... por lo que se me hace sumamente raro que digas que te funcionaba asi upper( :variable )


otra cosa que comentas ****Yo no pregunté esto en el foro de SQL Server porque esa misma instruccion en el Management Studio me corre perfectamente y me trae los datos correctos, ***** eso no puede ser que Management Studio no soporta eso de los : para las variables o los wheres ... es syntaxis esclusiva de SQL Embebido en PowerBuilder


P.D. por eso odie windows 10 porque es un desmadre, falta de compatibilidad y comportamientos ratos, yo te hubiera recomendado instalar VirtualBox o VMWare Player e instalarte un windows 7 virtual y ahi meter SQL y lo podrias manejar como servidor.... asi tengo yo mi Laptop con Maquinas virtuales una con Win7 y PostgreSQL, otra con SQL Server y otra con Oracle y asi no sobre cargo mi sistema principal


saludos


saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error en una Select - SOLUCIONADO

Publicado por Carolina (150 intervenciones) el 19/04/2017 22:19:46
Hola amigos! segui probando mi programa y me dio otro error pero un poco mas especifico y entonces le cambie el controlador de SQL Server en el ODBC y ahi me funciono todo nuevamente bien como funciona con Power Builder 9 en la maquina de Windows 7
asique probé denuevo la select anterior (sin hacerle el cambio como estaba originalmente al migrar todas las librerias) y funciona todo!!! asique voy a seguir probando acá.
Muchas gracias!
Carolina
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar