Ir al contenido



Foto

Insertar campos en diferente tiempo pero en el mismo registro


  • Por favor identifícate para responder
2 respuestas en este tema

#1 lexusnk

lexusnk

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 23 mayo 2013 - 01:06

Que tal al equipo y ala gente de este grandioso foro, lo que pasa es que ya estube buscando en todo el foro y no encontre algo parecido, tengo el siguiente codigo:



delphi
  1. procedure TForm1.numequipoChange(Sender: TObject);
  2. begin
  3. adoquery1.sql.Clear ;
  4. adoquery1.sql.Add ('Insert Into SCHAF (numequipo)');
  5. adoquery1.sql.Add ('Values('+QuotedStr(numequipo.Text)+')');
  6. adoquery1.execSql ;
  7.  
  8. adoquery1.sql.Clear ;
  9. adoquery1.sql.Add ('Insert Into SCHAF (fecha)');
  10. adoquery1.sql.Add ('Values('+QuotedStr(fecha.Text)+')');
  11. adoquery1.execSql ;
  12. end;
  13.  
  14. procedure TForm1.horainicChange(Sender: TObject);
  15. begin
  16. adoquery1.sql.Clear ;
  17. adoquery1.sql.Add ('Insert Into SCHAF (horainicio)');
  18. adoquery1.sql.Add ('Values('+QuotedStr(horainic.Text)+')');
  19. adoquery1.execSql ;
  20. end;



osea que cada vez que cambie el contenido de una caja de texto se guarde en la base de datos pero mi pregunta es:

¿Como insertar esos campos en un mismo registro?
ya que cada vez que modifico los edit se crea un nuevo registro


y otra duda que tengo es:

¿Como actualizar el dbnavigator?

ya que al hacer los insert cuando las cajas de texto cambian
el db navigator no se actualiza y se queda solo en el ultimo registro de cuando se ejecuto el programa

esto quiere decir que si tenia 5 registros y al cambiar el contenido de una caja de texto
se agrega un nuevo registro es decir el 6 pero el dbnavigator no lo cuenta ni aunque le de a su boton refresh

espero su respuesta, de antemano les agradesco su apoyo.
  • 0

#2 cadetill

cadetill

    Advanced Member

  • Moderadores
  • PipPipPip
  • 994 mensajes
  • LocationEspaña

Escrito 23 mayo 2013 - 01:26

Buenas,

Lo que no entiendo es por qué no usas componentes DataAware para estos menesteres?

Dejando de lado esto.... Si quieres modificar un registro, no puedes hacer un insert, tienes que hacer un update, sentencia que tiene aproximádamente esta estructura

update table set campo=valor where condiciones


donde campo=valor puede repetirse tantas veces como quieras separado por comas (campo1=valor1, campo2=valor2,...,campoN=valorN). En condiciones puedes poner la clave primaria de tu tabla para especificar un registro en concreto a modificar.

Respecto a la actualización del DBNavigator, éste va unido a un DataSet. Dependiendo de cómo esté configurado el nivel de aislamiento, tu DataSet no verá los cambios realizados hasta que no aceptes éstos mediante un commit.

Saludos
  • 0

#3 lexusnk

lexusnk

    Newbie

  • Miembros
  • Pip
  • 2 mensajes

Escrito 24 mayo 2013 - 12:41

Muchas gracias por su ayuda, pero decidi cambiar totalmente el formato de mi formulario, ya que fue mas sencillo de resolver...

  • 0