Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
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-11-2011
L3st4t L3st4t is offline
Miembro
 
Registrado: feb 2008
Posts: 24
Poder: 0
L3st4t Va por buen camino
Gracias Lepe por responder un viernes a las 23:30, yo veia peliculas a esa hora porque en casa no tengo internet

Por otro lado anidando ese código SQL a un ciclo repetitivo como lo valido para que me lo por la cantidad de clientes que hay en el sistema. es decir si hay 100 clientes se repita las 100 veces (obvio que uno para cada cliente).

Gracias

Saludos
Responder Con Cita
  #2  
Antiguo 07-11-2011
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
Eso ya lo hace con solo ejecutarlo 1 vez.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 07-11-2011
L3st4t L3st4t is offline
Miembro
 
Registrado: feb 2008
Posts: 24
Poder: 0
L3st4t Va por buen camino
Entiendo...

Bueno listo solo queda probarlo....


Muchas gracias Lepe...

Te estaré avisando...

Saludos....
Responder Con Cita
  #4  
Antiguo 10-11-2011
L3st4t L3st4t is offline
Miembro
 
Registrado: feb 2008
Posts: 24
Poder: 0
L3st4t Va por buen camino
Codigo Incompleto

Código Delphi [-]
Procedure TF_CargosA.InsertaRegistros;
var fccodigo : string;
begin
  with DataM.Q_Clientes do
  begin
   while not Eof do
   begin;
   //First;
  DataM.Q_Clientes.SQL.Clear;
  DataM.Q_Clientes.Close;
  DataM.Q_Clientes.SQL.Add('SELECT FC_CODIGO FROM SCLIENTES');
  DataM.Q_Clientes.ExecSQL;
  fccodigo := FieldByName('FC_CODIGO').AsString;
  end;
    With DataM.Q_CargosF do
    begin
    Next;
  DataM.Q_CargosF.SQL.Clear;
  DataM.Q_CargosF.Close;
  DataM.Q_CargosF.SQL.Add('INSERT INTO SCARGOSFIJOS  (FCF_CLIENTE,FCF_CODIGOPRODUCTO)');
  DataM.Q_CargosF.SQL.Add('VALUES  (aram1, aram2)');
  DataM.Q_CargosF.ParamByName('param1').AsString := fccodigo;
  DataM.Q_CargosF.ParamByName('param2').AsString := Edit1.Text;
  DataM.Q_CargosF.ExecSQL;
    end;
  end; //while

end;

Saludos

Lepe estuve probando el código que me diste pero no me funciono, pero fue porque no me explique bien. pero bueno decidí echarle un poco por mi lado y obtuve el que me muestro arriba, me funciona bien pero tengo problemas con el while, no logro que lo haga mas de una vez, solo me inserta el primer registro en la fila...Que esta mal?

Gracias
Responder Con Cita
  #5  
Antiguo 11-11-2011
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.418
Poder: 24
fjcg02 Va camino a la fama
Estás usando el mismos dataset para gestionar el while y para hacer las inserciones. Al hacer el SQL.Clear, lo destripas.
Además, las instrucciones SQL no tienes que volverlas a crear. Simplemente, cambias los valores de los parámetros y las ejecutas.
Observa cómo he realzaido los bucles. Tu código no tiene mucha lógica, ya que no tiene las iteraciones hechas correctamente.

Echa un vistazo a este código y dinos qué te parece. Indenta el código correctamente, tú mismo lo agradecerás.

Código Delphi [-]
Procedure TF_CargosA.InsertaRegistros;
var fccodigo : string;
begin
  // defines la query de clientes
    DataM.Q_Clientes.SQL.Clear;
    DataM.Q_Clientes.Close;
    DataM.Q_Clientes.SQL.Add('SELECT FC_CODIGO FROM SCLIENTES');

  // defines la query de actualización
    DataM.Q_CargosF.SQL.Clear;
    DataM.Q_CargosF.Close;
    DataM.Q_CargosF.SQL.Add('INSERT INTO SCARGOSFIJOS  (FCF_CLIENTE,FCF_CODIGOPRODUCTO)');
    DataM.Q_CargosF.SQL.Add('VALUES  (aram1, aram2)');

  // abres la q de clientes y te posicionas en el primero
    DataM.Q_Clientes.Open;
    First;
  // recorres la query de clientes
    while not DataM.Q_Clientes.Eof do
      begin;
        // por cada registro, lanzas la query de actualización
        fccodigo := FieldByName('FC_CODIGO').AsString;
        DataM.Q_CargosF.ParamByName('param1').AsString := fccodigo;
        DataM.Q_CargosF.ParamByName('param2').AsString := Edit1.Text;
        DataM.Q_CargosF.ExecSQL;

        // siguiente registro de clientes
        Next;
     end; //while

end;

Espero que te sirva de ayuda

Un saludo
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #6  
Antiguo 11-11-2011
L3st4t L3st4t is offline
Miembro
 
Registrado: feb 2008
Posts: 24
Poder: 0
L3st4t Va por buen camino
Saludos, gracias por responder.

En base al que pasaste corregi el mio, el cual funcionaba bien solo que tenia algunas cosas de mas...

Pero estoy muy agradecido...


Buen dia...
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
Insertar Datos a un campo de la base de datos desde un DBEdit saltamirano Varios 11 12-12-2007 17:29:35
como desplegar mensaje repetitivo en rango de tiempo Jheysson13 Varios 2 15-11-2006 18:47:23
Insertar datos en Base de Datos aoiTo C++ Builder 2 18-06-2006 15:42:43
crear label por codigo en un ciclo for.. las beses de el ciclo sakuragi .NET 3 29-09-2005 05:04:29
validar una fecha en un ciclo repetitivo.... uper Varios 6 25-05-2005 02:21:10


La franja horaria es GMT +2. Ahora son las 16:28:53.


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