Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Instrucción SQL UNION funciona en MS SQL Server pero no en DELPHI 7 (https://www.clubdelphi.com/foros/showthread.php?t=76456)

alej.villa 02-11-2011 14:14:16

Instrucción SQL UNION funciona en MS SQL Server pero no en DELPHI 7
 
Buenos días amigos, mi pregunta es la siguiente porque la instrucción que coloco en SQL Server funciona sin problemas y esa misma instrucción la coloco en Delphi y no da el mismo resultado? :confused:

NOTA: Los datos que estoy consultando son diferentes en las dos tablas, en SQL Server los resultados son correctos utilizando la intrucción UNION y UNION ALL y en delphi no son los mismos utilizando esas mismas intrucciones.

si alguien les ha pasado algo similar o sabe como resolverlo se los agradecería.

el código SQL de la instrucción que uso es:
Código SQL [-]
SELECT     cedula
FROM         Empleados
WHERE     (turno = 'MEGATURNO')
UNION
SELECT     cedula
FROM         Turno_Temporal
WHERE     (turno_temp = 'MEGATURNO') AND (estado = 'activo')


el código que uso la misma intrucción pero en Delphi es:
Código Delphi [-]
  dm.Query.SQL.Add('SELECT cedula FROM empleados WHERE turno = :xfiltro');
  dm.Query.SQL.Add('UNION');
  dm.Query.SQL.Add('SELECT cedula FROM Turno_Temporal WHERE turno_temp = :xfiltro AND estado = :type');
  DM.Query.Parameters.ParamByName('xfiltro').DataType:=ftString;
  dm.Query.Parameters.ParamByName('xfiltro').Value:=ComboBox1.Text;
  DM.Query.Parameters.ParamByName('type').DataType:=ftString;
  dm.Query.Parameters.ParamByName('type').Value:='activo';

alej.villa 02-11-2011 14:38:03

Solucionado
 
Listo amigos ya solucione mi problema :) el detalle estaba que debia utilizar otro parametro para el turno_temp y no el mismo que usaba con el turno.


quedando mi codigo de esta manera :)
Código Delphi [-]
  dm.Query.SQL.Add('SELECT cedula FROM empleados WHERE turno = :xfiltro');   dm.Query.SQL.Add('UNION');   dm.Query.SQL.Add('SELECT cedula FROM Turno_Temporal WHERE turno_temp = :yfiltro AND estado = :type');   DM.Query.Parameters.ParamByName('xfiltro').DataType:=ftString;   dm.Query.Parameters.ParamByName('xfiltro').Value:=ComboBox1.Text;
  DM.Query.Parameters.ParamByName('yfiltro').DataType:=ftString;   dm.Query.Parameters.ParamByName('yfiltro').Value:=ComboBox1.Text;     DM.Query.Parameters.ParamByName('type').DataType:=ftString;   dm.Query.Parameters.ParamByName('type').Value:='activo';


La franja horaria es GMT +2. Ahora son las 05:13:51.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi