Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-09-2007
Avatar de Victor Vega
Victor Vega Victor Vega is offline
Miembro
 
Registrado: feb 2005
Posts: 12
Poder: 0
Victor Vega Va por buen camino
Listview... con ADO

Hola de nuevo amigos programadores.
Ahora se me presento un detalle con mi proyecto, lo trabajo con ADO como mencione en un hilo anterior, este ya me permite guardar, buscar, editar y eliminar registro de una base de datos sql server 7 de la mejor manera.
pero ahora necesito de su ayuda ya que no he podido cargar los datos que posea en un control Listview;
esto es lo que he tratado de hacer pero me indicar error:

Código:
 
QLlenar.SQL.Clear;
QLlenar.SQL.Add('select * from Datos order by cedula');
   QLlenar.ExecSQL;
  if QLlenar.RecordCount >=1
    then begin
      lista.Clear;
      QLlenar.First;
      while not QLLenar.Eof do
        begin
        ListItem:=lista.Items.Add;
        ListItem.Caption:=  FieldByName('nombres').AsString;
        end;
      QLlenar.Next;
Espero me puedan ayudar, ya que este control me paece mas presentable que el DBGrid
Responder Con Cita
  #2  
Antiguo 07-09-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola Victor Vega. ¿Podrías darnos a conocer el error y señalarnos en que parte ocurre?

Viendo rápidamente tu código te puedo decir que el error que veo es que estás haciendo el Next fuera del bucle. Tu código debería ir así:

Código Delphi [-]
QLlenar.SQL.Clear;
QLlenar.SQL.Add('select * from Datos order by cedula');
QLlenar.ExecSQL;
  if QLlenar.RecordCount >=1
    then begin
             lista.Clear;
             QLlenar.First;
             while not QLLenar.Eof do
               begin
                 ListItem:=lista.Items.Add;
                 ListItem.Caption:=  FieldByName('nombres').AsString;
                 QLlenar.Next; // <- esto va aquí
                end;
           end; // <- te faltó un end para cerrar el THEN

Ha.. por cierto.. utiliza la etiquetas DELPHI y no las CODE.
Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 07-09-2007
Avatar de Victor Vega
Victor Vega Victor Vega is offline
Miembro
 
Registrado: feb 2005
Posts: 12
Poder: 0
Victor Vega Va por buen camino
Hola Delphius

Sabes copie el codigo q me diste y me ocurre el mismo error, ste se da en la linea siguiente:

Código Delphi [-]
 
ListItem.Caption:=  FieldByName('nombres').AsString;
el error me da al momento de compilar y me dice:

[Error] Unit1.pas(215): Undeclared identifier: 'FieldByName'

espero me ayudes a resolverlo...
Responder Con Cita
  #4  
Antiguo 07-09-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Ya vi... el error se debe a que no se puede identificar el objeto al que pertenece FieldbyName sólo debes poner:
Código Delphi [-]
QLlenar.fieldbyName(...)

Prueba con esto.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #5  
Antiguo 07-09-2007
Avatar de Victor Vega
Victor Vega Victor Vega is offline
Miembro
 
Registrado: feb 2005
Posts: 12
Poder: 0
Victor Vega Va por buen camino
Unhappy Todavia falla

le coloque esta parte q me diste:

Código Delphi [-]
ListItem.Caption:= QLlenar.FieldByName('nombres').AsString;
y ahora me dice:

QLLenar: Cannot perform this operation on a closed dataset

pense q era porque estaba cerrado y antes del QLlenar.First le agregue QLlenar.Open y aun asi me da ese error
Responder Con Cita
  #6  
Antiguo 07-09-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Disculpa que me haya demorado.

Bueno, ese error se debe a que no estás lanzando correctamente la consulta. Si estás realizando una consulta del tipo SELECT, se espera una orden Open:
Código Delphi [-]
QLlenar.Open;

Mientras que si realizas un INSERT o un UPDATE debes emplear
Código Delphi [-]
QLlenar.ExecSQL;

Cambialo y verás que funciona.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #7  
Antiguo 07-09-2007
Avatar de Victor Vega
Victor Vega Victor Vega is offline
Miembro
 
Registrado: feb 2005
Posts: 12
Poder: 0
Victor Vega Va por buen camino
Talking Funciono

Es correcto amigo, tenia 2 ExecSQL y solo habia quitado uno, al inicio del codigo tenia el otro... Graias me funciono muy bien...
Responder Con Cita
  #8  
Antiguo 07-09-2007
Avatar de Victor Vega
Victor Vega Victor Vega is offline
Miembro
 
Registrado: feb 2005
Posts: 12
Poder: 0
Victor Vega Va por buen camino
SubItems al Listview

Una ultima yuda aqui porfa.....
como agrego un Subitems????.... Hice algo asi:

Código Delphi [-]
 
var
Columna: TListColumn;
 
Columna:= lista.Columns.Add;
Columna.Caption:=QLlenar.FielByName('apellidos').AsString;

pero no me resulta.
vuelve a decirme q o esta declarado FielByName
Responder Con Cita
  #9  
Antiguo 07-09-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Victor... victor... ¿De donde eres? Porque creo que el sueño y el cansancio te está afectado

No existe FielbyName... estoy completamente seguro que lo que tu quieres decir es:

Código Delphi [-]
QLlenar.FieldbyName('apellidos').asString;

A menos de que te hayas equivocado al postear... alli ya no se que decirte. Tendría que ver que cambios le hiciste a tu código.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #10  
Antiguo 07-09-2007
Avatar de Victor Vega
Victor Vega Victor Vega is offline
Miembro
 
Registrado: feb 2005
Posts: 12
Poder: 0
Victor Vega Va por buen camino
Question

la verdad el cansancio si me mata pero no podre dormir tranquilo hasta no resolver este rollo,
solo necesito agregar a ese listview un subitems

Código Delphi [-]
 
QLlenar.SQL.Clear;
QLlenar.SQL.Add('select * from Datos order by cedula');
QLlenar.Open;
  if QLlenar.RecordCount >=1
    then begin
             lista.Clear;
             QLlenar.Open;
             QLlenar.First;
             while not QLLenar.Eof do
               begin
                 ListItem:=lista.Items.Add;
                 ListItem.Caption:= QLlenar.FieldByName('nombres').AsString;
                 ListItem.SubItems.Add('apellidos');
                 
                 QLlenar.Next;
                end;
           end;

como veras en la parte donde quiero agregar el subitems solo esta add('apellidos') y de esa manera me agrega el tecto apellido al subitems. y si le asigno FieldByName me da el bendito error de no declarado...
Responder Con Cita
  #11  
Antiguo 08-09-2007
Avatar de Victor Vega
Victor Vega Victor Vega is offline
Miembro
 
Registrado: feb 2005
Posts: 12
Poder: 0
Victor Vega Va por buen camino
De nuevo con el tema del listview

Hola como estan regreso con este tema para comunicarles los adelantos q logre hacer hoy, pero q en resumidas aun no logro del todo lo que quiero... les dejo el codigo y les explico lo q sucede:

Código Delphi [-]
 
QLlenar.SQL.Clear;
QLlenar.SQL.Add('select * from Datos order by cedula');
QLlenar.Open;
  if QLlenar.RecordCount >=1
    then begin
             lista.Clear;
             QLlenar.Open;
             QLlenar.First;
             while not QLLenar.Eof do
               begin
                 with lista.Items.Add do
                  begin
                  Caption:= QLlenar.FIeldByName('cedula').AsString;
                  Subitems.Text:= QLlenar.FieldByName('nombres').AsString;
                  Subitems.Text:=QLlenar.FieldByName('apellidos').AsString;
                  end;
             QLlenar.Next;
                 end;
           end;

ya logro añadir a mi lista Subitem, cuando probé con el primer subitems todo funciono bien, pero cuando intente añadir el segundo subitems no me dio error de programación, pero tampoco me inserto nada en la lista.

espero uno de uds me pueda ayudar, y si es Delphius con su paciencia le estare agradecido de mas..
Ademas esto nos servira a todos, asi q es bueno trabajar en conjunto por eso es que somos todos de este club..
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Uso de ListView lucero_chivas C++ Builder 3 27-09-2006 17:38:00
problema con listview cristian_abb Varios 2 22-06-2006 16:47:12
ordenar Listview remialdo OOP 2 21-06-2006 07:40:29
Sobre ListView altp Varios 4 20-07-2004 12:20:30
Una sobre ListView Novás Varios 1 17-10-2003 13:08:09


La franja horaria es GMT +2. Ahora son las 16:08:54.


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