Club Delphi  
    Paypal   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 27-07-2007
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 22
Deiv Va por buen camino
Hola,
Gracias Caral por preocuparte de mi asunto, disculpa si estoy muy torpe con mis preguntas (quizá inentendibles) es lo que me pasa por ser más novato (autodidacta) que muchos novatos.
No tengo conexión a Internet en Casa y me valgo de Cibers, me he percatado que tengo una nueva respuesta tuya, por ello no respondí antes.
Toda tu comprensión está clarísima, solo que me parece que no me estoy dejando entender. Quiero hacer algo parecido a:
Código Delphi [-]
 
for i:=1 to 100 do  //100 digamos
   begin    
       P:=..... //Primero guardo el nombre BASE (en mi código = No Metales) revisando cada registro filtrado por "NM"
       for j:=1 to 50 do  //50 digamos
           begin              
              S:= .....//Segundo guardo el nombre (en mi código = Metales) revisando cada registro filtrado por "M"
              T:= P+S; // Junto las Cadenas para que me resulte un Nombre Completo de la SAL y mostrarlo en un TListBox
           end;
   end;
En realidad mi código trabaja con 2 TADOQueries, pero más era la curiosidad (por aprender mejor a programar) de ver si se podía con 1 solo TADOQuery
Digo una cosa.... ¿Podrías copiar mi código del post#1 readecuarlo y obtener el mismo resultado pero con 1 solo TADOQuery?

Última edición por Deiv fecha: 27-07-2007 a las 00:34:53.
Responder Con Cita
  #2  
Antiguo 27-07-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 28
Caral Va por buen camino
Hola
Que problema ser mas novato que el que pregunta, pero bueno, si te animas.
Me extraña la palabra Guardo, donde guardas, supongo que en memoria, porque no veo que sea en ninguna tabla.
Ahora a tu curiosidad, casi estoy convencido que se puede hacer lo que quieres con una sentencia sql distinta en un solo query, pero no veo el porque preocuparse de tener 2 query en un form para una misma consulta.
Como soy mas novato que tu y tambien autodidacta en ocasiones he usado mas de dos querys en una consulta, por lo menos al inicio, casi un año.
Yo no me preocuparia de estas cosas, seguiria adelante, sobre todo porque funciona, y con el tiempo te daras cuenta de mas cosas, se llama practica, nos pasa a todos.
Me parece muy bien tu curiosidad, pero no lo veo como algo grave que te tenga que preocupar ahora, para mi vas mejor que yo.
Saludos
Responder Con Cita
  #3  
Antiguo 27-07-2007
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 22
Deiv Va por buen camino
Gracias por los ánimos, en verdad no mentía: si soy supernovato puedes leer en este hilo, en el post #9
Me hubiera gustado salir de esta duda, pero si no hay problema, entonces seguiré con mis 2 TADOQueries.
Responder Con Cita
  #4  
Antiguo 27-07-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Lastimosamente concuerdo con el amigo Caral con lo de "dejarlo pues funciona", pero no por "iniciar" en programación, pues si te metiste a hacerlo es porque puedes; si no porque es importante tener en mente que si quieres volverlo "perfecto", perderás la relación costo - beneficio y acabarás quemando tu cerebro y muchas horas en optimización.

Paradójicamente y al igual que tu me gusta que las cosas queden lo más parecido a perfecto (¿?) posible; asi que si estas dispuesto vamos a analizar las alternativas. Por lo que tengo entendido quieres hacerlo todo simplemente con una sentencia SQL; en tal vaso te dejo la siguiente corrección:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
 ADOQuery1.SQL.Text := 'select nm.prefijo + nm.nom + nm.sufijo + ''  '' + m.prefijo + m.nom + m.sufijo from muchos nm, muchos m where nm.idtipo = ''NM'' and m.idtipo = ''M'' order by nm.prefijo + nm.nom + nm.sufijo + ''  '' + m.prefijo + m.nom + m.sufijo';
 ADOQuery1.Active:= True;
 with ADOQuery1 do
  begin
   First;
   while not EOF do
    begin
     ListBox1.AddItem(Fields.FieldByNumber(1).AsString, nil);
     Next;
    end;
  end;
end;

No dejes de comentarnos como te va!

Edito: Tambien debemos ver cual de las dos alternativas es la más optima. En ESTE caso lo es la última por usar solo un bucle, pero si trabajamos en red debemos analizar qué es lo mas importante, pues con ésta le estamos reduciendo trabajo a las PCs Clientes; con tu solución le aumentamos un poco a las mismas, pero en teoria le reducimos algo al Servidor.

Última edición por cHackAll fecha: 27-07-2007 a las 02:26:59.
Responder Con Cita
  #5  
Antiguo 28-07-2007
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 22
Deiv Va por buen camino
Gracias cHackAll,
Como indique no tengo conexión a un Internet y en este momento estando en un Ciber no tengo acceso a Delphi, probaré tu propuesta, luego les comento además he podido observar que el código sql de tu consejo se ha vuelto un poco mas extenso (en línea), hummmm, veremos.
Saludos
Responder Con Cita
  #6  
Antiguo 29-07-2007
Deiv Deiv is offline
Miembro
 
Registrado: jul 2005
Ubicación: La Paz - Bolivia
Posts: 364
Poder: 22
Deiv Va por buen camino
Cita:
Empezado por cHackAll
No dejes de comentarnos como te va!
Bueno lo he probado, es nuevo para mi eso de las varaiables en SQL, pero en fin he probado tu código y no me muestra nada, en cambio si le cambio el AND por el OR, si me muestra pero no como mi código funciona (¿Probaste mi código con la BD de Access?), muestra los prefijos de los No Metales+Nombre, pero..... nada de los Metales.
No sé donde está la falla......
Responder Con Cita
  #7  
Antiguo 30-07-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Claro que si probe el código y funciona a la perfección. Me parece que la posible causa es el diseño de la BD, pues yo trabajé a ciagas... (suponiendo los campos)... en todo caso pásame los campos + ejemplos; y lo que se debería visualizar y veremos que sucede en realidad.

PD: Delphi7 + ADO + Access 2003, BD 2000

Saludos
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
Trabajar Con TAdoTables o TAdoQueries!?? kman Varios 4 29-12-2005 12:16:37


La franja horaria es GMT +2. Ahora son las 19:24:54.


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