Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Problema Delphi con Access (https://www.clubdelphi.com/foros/showthread.php?t=81986)

darkamerico 11-01-2013 17:05:56

Problema Delphi con Access
 
Hola delphianos, tengo una consulta SQL que funciona bien dentro de Access pero que no funciona en Delphi, estoy usando TUniQuery del set de componentes TUniDAC, que es identico al TQuery nativo, la consulta que uso es:

----------------------------------------------------------------------------------
Código Delphi [-]
procedure TForm1.btnListarClick(Sender: TObject);
begin
  if(radSemestre2.Checked)then
  begin
    q_ContribSem2.Close;
    q_ContribSem2.SQL.Clear;
    q_ContribSem2.SQL.Add('SELECT SUMINISTRO.SUMTITIPOPERSONA, SUMINISTRO.SUMCHRAZONSOCIAL, SUMINISTRO.SUMCHAPELLIDOPATERNO,');
    q_ContribSem2.SQL.Add('SUMINISTRO.SUMCHAPELLIDOMATERNO, SUMINISTRO.SUMCHNOMBRES, SUMINISTRO.SUMchCodigo, SUMINISTRO.SUMTITIPOCALLE, ');
    q_ContribSem2.SQL.Add('SUMINISTRO.SUMCHNOMBRECALLE, SUMINISTRO.SUMCHNUMEROCALLE, SUMINISTRO.OBSERVACIONESMEDIDOR ');
    q_ContribSem2.SQL.Add('FROM SUMINISTRO ');
    q_ContribSem2.SQL.Add('WHERE ((((SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + 'NVO*' + chr(39) + ' Or ');
    q_ContribSem2.SQL.Add('(SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + 'NUEVO*' + chr(39) + ') And');
    q_ContribSem2.SQL.Add('((SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + '*JULIO*' + chr(39) + ' Or ');
    q_ContribSem2.SQL.Add(' (SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + '*AGOSTO*' + chr(39) + ' Or ');
    q_ContribSem2.SQL.Add(' (SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + '*SETIEMBRE*' + chr(39) + ' Or ');
    q_ContribSem2.SQL.Add(' (SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + '*OCTUBRE*' + chr(39) + ' Or ');
    q_ContribSem2.SQL.Add(' (SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + '*NOVIEMBRE*' + chr(39) + ' Or ');
    q_ContribSem2.SQL.Add(' (SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + '*DICIEMBRE*' + chr(39) + ') And ');
    q_ContribSem2.SQL.Add(' (SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + '*' + cboAnio.Text + '*' + chr(39) + '));');
    q_ContribSem2.Open;
    ds.DataSet:=q_ContribSem2;
    q_ContribSem2.Active:=true;
  end;
end;
----------------------------------------------------------------------------------
El asunto es que cuando ejecuto esta consulta dentro de MS Access, todo esta OK, pero en Delphi el DBGrid que debe mostrar la informacion aparece vacio

Agradezco mucho su ayuda.

Saludos

Casimiro Notevi 11-01-2013 17:10:24

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)


Recuerda poner los tags al código fuente, ejemplo:



Gracias :)

darkamerico 11-01-2013 17:22:51

El proyecto
 
Cita:

Empezado por darkamerico (Mensaje 453249)
Hola delphianos, tengo una consulta SQL que funciona bien dentro de Access pero que no funciona en Delphi, estoy usando TUniQuery del set de componentes TUniDAC, que es identico al TQuery nativo, la consulta que uso es:

----------------------------------------------------------------------------------
Código Delphi [-]
procedure TForm1.btnListarClick(Sender: TObject);
begin
  if(radSemestre2.Checked)then
  begin
    q_ContribSem2.Close;
    q_ContribSem2.SQL.Clear;
    q_ContribSem2.SQL.Add('SELECT SUMINISTRO.SUMTITIPOPERSONA, SUMINISTRO.SUMCHRAZONSOCIAL, SUMINISTRO.SUMCHAPELLIDOPATERNO,');
    q_ContribSem2.SQL.Add('SUMINISTRO.SUMCHAPELLIDOMATERNO, SUMINISTRO.SUMCHNOMBRES, SUMINISTRO.SUMchCodigo, SUMINISTRO.SUMTITIPOCALLE, ');
    q_ContribSem2.SQL.Add('SUMINISTRO.SUMCHNOMBRECALLE, SUMINISTRO.SUMCHNUMEROCALLE, SUMINISTRO.OBSERVACIONESMEDIDOR ');
    q_ContribSem2.SQL.Add('FROM SUMINISTRO ');
    q_ContribSem2.SQL.Add('WHERE ((((SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + 'NVO*' + chr(39) + ' Or ');
    q_ContribSem2.SQL.Add('(SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + 'NUEVO*' + chr(39) + ') And');
    q_ContribSem2.SQL.Add('((SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + '*JULIO*' + chr(39) + ' Or ');
    q_ContribSem2.SQL.Add(' (SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + '*AGOSTO*' + chr(39) + ' Or ');
    q_ContribSem2.SQL.Add(' (SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + '*SETIEMBRE*' + chr(39) + ' Or ');
    q_ContribSem2.SQL.Add(' (SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + '*OCTUBRE*' + chr(39) + ' Or ');
    q_ContribSem2.SQL.Add(' (SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + '*NOVIEMBRE*' + chr(39) + ' Or ');
    q_ContribSem2.SQL.Add(' (SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + '*DICIEMBRE*' + chr(39) + ') And ');
    q_ContribSem2.SQL.Add(' (SUMINISTRO.OBSERVACIONESMEDIDOR) Like ' + chr(39) + '*' + cboAnio.Text + '*' + chr(39) + '));');
    q_ContribSem2.Open;
    ds.DataSet:=q_ContribSem2;
    q_ContribSem2.Active:=true;
  end;
end;
----------------------------------------------------------------------------------
El asunto es que cuando ejecuto esta consulta dentro de MS Access, todo esta OK, pero en Delphi el DBGrid que debe mostrar la informacion aparece vacio

Agradezco mucho su ayuda.

Saludos

El proyecto lo he subido a Unibytes, para cualquiera que desee verlo en detalle: unibytes.com/Pe63KcXG8RgLqw-Us4P3UgBB

Neftali [Germán.Estévez] 11-01-2013 17:37:06

Haz una consulta más sencilla y prueba a cambiar los * por %.

darkamerico 11-01-2013 17:46:10

Resuelto
 
Gracias Neftali, Realizando eso trabajo bien, ;)


La franja horaria es GMT +2. Ahora son las 08:45:37.

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