Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-01-2012
Vales08 Vales08 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 133
Poder: 14
Vales08 Va por buen camino
Problemas con el codigo SQL

Tengo el siguiente código SQL
Código SQL [-]
DM.Q_loc.SQL.Clear;
DM.Q_loc.SQL.Add('select LOCALIDAD from LOCALIDADES GROUP BY LOCALIDAD');
DM.Q_loc.Open;
while not DM.Q_loc.Eof do
  begin
    loc_cons_inst.Items.Add(DM.Q_loc.FieldByName('LOCALIDAD').AsString);
    DM.Q_loc.Next;
  end;

La cuestion es que me salta error, y es porque siempre me solicita los otros campos que faltan de la tabla, como el ID_LOC, CODIGO_POSTAL, PROVINCIA..
Entonces no me queda otra que poner
Código SQL [-]
...
DM.Q_loc.SQL.Add('select * from LOCALIDADES');
...

Pero yo necesito solamente LOCALIDAD para poder agrupar por ese mismo campo, entonces en el combobox no se me repiten los datos..

Uso Delphi7, sql manager y motor de base de datos firebird..
Espero puedan ayudarme.. Desde ya muchas gracias..
Responder Con Cita
  #2  
Antiguo 12-01-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
A ver asi:
Código Delphi [-]
DM.Q_loc.SQL.Clear;
DM.Q_loc.SQL.Add('select LOCALIDAD from LOCALIDADES ORDER BY LOCALIDAD');
DM.Q_loc.Open;
while not DM.Q_loc.Eof do
  begin
    loc_cons_inst.Items.Add(DM.Q_loc.FieldByName('LOCALIDAD').AsString);
    DM.Q_loc.Next;
  end;
o asi:
Código Delphi [-]
DM.Q_loc.SQL.Clear;
// todos los campos en el group By
DM.Q_loc.SQL.Add('select LOCALIDAD from LOCALIDADES GROUP BY ID_LOC, CODIGO_POSTAL, PROVINCIA, LOCALIDAD');
DM.Q_loc.Open;
while not DM.Q_loc.Eof do
  begin
    loc_cons_inst.Items.Add(DM.Q_loc.FieldByName('LOCALIDAD').AsString);
    DM.Q_loc.Next;
  end;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 12-01-2012
Vales08 Vales08 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 133
Poder: 14
Vales08 Va por buen camino
Muchas gracias por contestar, pero sigue sin funcionar.. Te pongo el error que me da..

Cita:
---------------------------
Debugger Exception Notification
---------------------------
Project Project_tesis.exe raised exception class EDatabaseError with message 'Q_loc: Field 'ID_LOC' not found'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
Y este error salta con cada Campo de la tabla.. Por eso no me queda otra que seleccionar todos (select *).
Responder Con Cita
  #4  
Antiguo 12-01-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Segura que no va este ?:
Código Delphi [-]
DM.Q_loc.SQL.Clear;
DM.Q_loc.SQL.Add('select LOCALIDAD from LOCALIDADES ORDER BY LOCALIDAD');
DM.Q_loc.Open;
while not DM.Q_loc.Eof do
  begin
    loc_cons_inst.Items.Add(DM.Q_loc.FieldByName('LOCALIDAD').AsString);
    DM.Q_loc.Next;
  end;
Prueba este:
Código Delphi [-]
DM.Q_loc.SQL.Clear;
DM.Q_loc.SQL.Add('select LOCALIDAD from LOCALIDADES');
DM.Q_loc.Open;
while not DM.Q_loc.Eof do
  begin
    loc_cons_inst.Items.Add(DM.Q_loc.FieldByName('LOCALIDAD').AsString);
    DM.Q_loc.Next;
  end;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #5  
Antiguo 12-01-2012
Vales08 Vales08 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 133
Poder: 14
Vales08 Va por buen camino
Me sigue dando el mismo error, lo que sucede es que yo no necesito ordenar, necesito si o si agrupar para que no me repita los campos sino me los muestra 2 veces...
Y realizandolo de esta forma tampoco me funciona

Código Delphi [-]
DM.Q_loc.SQL.Clear;
DM.Q_loc.SQL.Add('select LOCALIDAD from LOCALIDADES');
DM.Q_loc.Open;
while not DM.Q_loc.Eof do
  begin
    loc_cons_inst.Items.Add(DM.Q_loc.FieldByName('LOCALIDAD').AsString);
    DM.Q_loc.Next;
  end;

La verdad que no se porque me hace eso, porque me tendria que permitir seleccionar de a un campo solo, sin necesidad de seleccionar todo..
Responder Con Cita
  #6  
Antiguo 12-01-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
a la brava
Código Delphi [-]
DM.Q_loc.SQL.Clear;
DM.Q_loc.SQL.Add('select DISTINCT LOCALIDAD from LOCALIDADES');
DM.Q_loc.Open;
while not DM.Q_loc.Eof do
  begin
    loc_cons_inst.Items.Add(DM.Q_loc.FieldByName('LOCALIDAD').AsString);
    DM.Q_loc.Next;
  end;
Saludos
__________________
Siempre Novato
Responder Con Cita
  #7  
Antiguo 12-01-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Vales.

Te hago una consulta: ¿ Agregaste campos persistentes ? Es decir, ¿ Tenés DBEdits, etc., relacionados con un 'SELECT * FROM LOCALIDADES' realizado sobre el TIBQuery ?

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 12-01-2012
Vales08 Vales08 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 133
Poder: 14
Vales08 Va por buen camino
Tengo DBLookupComboBox pero están conectados directamente a un DataSet, el cual en el select SQL, tiene seleccionado todos los campos de Localidad.
Sera por eso??
Responder Con Cita
  #9  
Antiguo 12-01-2012
Vales08 Vales08 is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 133
Poder: 14
Vales08 Va por buen camino
Caral lo probe al codigo pero sigue sin funcionar, lo mismo me gustria saber que funcion cumple el DISTINCT..
Responder Con Cita
  #10  
Antiguo 12-01-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Vales.
Cita:
Tengo DBLookupComboBox pero están conectados directamente a un DataSet, el cual en el select SQL, tiene seleccionado todos los campos de Localidad.
Sera por eso??
Si, creo que es eso.

Probá algo como:
Código Delphi [-]
procedure TForm1.btnCargarClick(Sender: TObject);
begin
  with TIBQuery.Create(nil) do
  try
    Database:= DM.IBDatabase1;
    Transaction:= DM.IBTransaction1;
    Close;
    SQL.Text:= 'SELECT LOCALIDAD FROM LOCALIDADES ORDER BY LOCALIDAD';
    Open;
    while not Eof do
    begin
      ComboBox1.Items.Add(FieldByName('LOCALIDAD').AsString);
      Next
    end;
    Close
  finally
    Free
  end;
end;
Lógicamente tendrías que cambiar los nombres de IBDatabase1, IBTransaction1, ComboBox1, etc. por los que correspondan.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problemas con codigo en delphi Nelly Varios 3 07-11-2005 22:08:09
Problemas de impresión de código de barras burasu Impresión 5 14-09-2005 09:11:38
Problemas con el Lector de Codigo de Barra FM73 Varios 2 03-06-2005 19:44:39
Problemas con un codigo fled SQL 2 15-02-2004 10:50:05
problemas al pasar un código SQL al selectSQL Giniromero Conexión con bases de datos 11 28-10-2003 19:36:19


La franja horaria es GMT +2. Ahora son las 11:22:07.


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
Copyright 1996-2007 Club Delphi