Ir al contenido


Foto

Realizar en un form un Update


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

#21 kafastoforman

kafastoforman

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 277 mensajes
  • LocationMexico D.F.

Escrito 10 marzo 2010 - 09:58

Hola que tal, creo que la primera linea esta de mas, puesto que tu estas ejecutando una consulta update y por lo tanto no es necesario que pongas el dataset en modo edit.

Del a misma manera te comento que query1 ya es en si un Tdataset, asi que no creo que sea necesario hacer referencia al datasource y despues al dataset si no solamente ponerlo

delphi
  1. query1.edit





delphi
  1. procedure TForm5.Button1Click(Sender: TObject);
  2. begin
  3.   query1.datasource.dataset.edit; <--- Creo que esa linea esta de mas
  4.   query1.SQL.text:='update BLIBROS set AREA= :area,FOLIO= :FOLIO, TITULO = :titulo WHERE ISBN = :ISBN';
  5.   query1.Parambyname('area').AsString:=edit1.Text;
  6.   query1.Parambyname('FOLIO').AsString:=edit2.text;
  7.   QUERY1.ParamBYNAME('titulo').AsString:=edit3.Text;
  8.   query1.ParamByName('ISBN').AsString:=edit6.Text;
  9.   query1.ExecSQL;
  10.   query1.post;
  11.  
  12. end;



Saludos

Kafastoforman
  • 0

#22 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 10 marzo 2010 - 10:02

Está de más la primera y última línea, intentemoslo de esta manera:



delphi
  1. procedure TForm5.Button1Click(Sender: TObject);
  2. begin
  3.   query1.Close;
  4.   query1.SQL.Clear;
  5.   query1.SQL.text:='update BLIBROS set AREA= :area, FOLIO= :FOLIO, TITULO = :titulo WHERE ISBN = :ISBN';
  6.   query1.Parambyname('area').Value := edit1.Text;
  7.   query1.Parambyname('FOLIO').Value := edit2.text;
  8.   QUERY1.ParamBYNAME('titulo').Value := edit3.Text;
  9.   query1.ParamByName('ISBN').Value := edit6.Text;
  10.   query1.ExecSQL;
  11. end;



Saludos.
  • 0

#23 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 10 marzo 2010 - 10:07

Está de más la primera y última línea, intentemoslo de esta manera:



delphi
  1. procedure TForm5.Button1Click(Sender: TObject);
  2. begin
  3.   query1.Close;
  4.   query1.SQL.Clear;
  5.   query1.SQL.text:='update BLIBROS set AREA= :area, FOLIO= :FOLIO, TITULO = :titulo WHERE ISBN = :ISBN';
  6.   query1.Parambyname('area').Value := edit1.Text;
  7.   query1.Parambyname('FOLIO').Value := edit2.text;
  8.   QUERY1.ParamBYNAME('titulo').Value := edit3.Text;
  9.   query1.ParamByName('ISBN').Value := edit6.Text;
  10.   query1.ExecSQL;
  11. end;



Saludos.

despues de eso cuando le pinchoo guardar lo hace pero no se ven los cambios en el dbgrid principal  que pudriis hacer?
  • 0

#24 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 10 marzo 2010 - 10:12

Lo que tienes que hacer es abrir y cerrar la tabla para que se refresque los datos, Suponiendo que el Grid está conectado a un dataset llamado Tabla1, sólo debes agregar estas dos líneas al final:



delphi
  1. procedure TForm5.Button1Click(Sender: TObject);
  2. begin
  3.   query1.Close;
  4.   query1.SQL.Clear;
  5.   query1.SQL.text:='update BLIBROS set AREA= :area, FOLIO= :FOLIO, TITULO = :titulo WHERE ISBN = :ISBN';
  6.   query1.Parambyname('area').Value := edit1.Text;
  7.   query1.Parambyname('FOLIO').Value := edit2.text;
  8.   QUERY1.ParamBYNAME('titulo').Value := edit3.Text;
  9.   query1.ParamByName('ISBN').Value := edit6.Text;
  10.   query1.ExecSQL;
  11.  
  12.   Tabla1.Close;
  13.   Tabla1.Open;
  14. end;


  • 0

#25 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 10 marzo 2010 - 10:14

Lo que tienes que hacer es abrir y cerrar la tabla para que se refresque los datos, Suponiendo que el Grid está conectado a un dataset llamado Tabla1, sólo debes agregar estas dos líneas al final:



delphi
  1. procedure TForm5.Button1Click(Sender: TObject);
  2. begin
  3.   query1.Close;
  4.   query1.SQL.Clear;
  5.   query1.SQL.text:='update BLIBROS set AREA= :area, FOLIO= :FOLIO, TITULO = :titulo WHERE ISBN = :ISBN';
  6.   query1.Parambyname('area').Value := edit1.Text;
  7.   query1.Parambyname('FOLIO').Value := edit2.text;
  8.   QUERY1.ParamBYNAME('titulo').Value := edit3.Text;
  9.   query1.ParamByName('ISBN').Value := edit6.Text;
  10.   query1.ExecSQL;
  11.  
  12.   Tabla1.Close;
  13.   Tabla1.Open;
  14. end;


es un query pero con otro form
  • 0

#26 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 10 marzo 2010 - 10:18

Pos es lo mismo, sólo agregas el form donde está el otro query en el form5, suponiendo que el otro form se llama Form4:



delphi
  1. procedure TForm5.Button1Click(Sender: TObject);
  2. begin
  3.   query1.Close;
  4.   query1.SQL.Clear;
  5.   query1.SQL.text:='update BLIBROS set AREA= :area, FOLIO= :FOLIO, TITULO = :titulo WHERE ISBN = :ISBN';
  6.   query1.Parambyname('area').Value := edit1.Text;
  7.   query1.Parambyname('FOLIO').Value := edit2.text;
  8.   QUERY1.ParamBYNAME('titulo').Value := edit3.Text;
  9.   query1.ParamByName('ISBN').Value := edit6.Text;
  10.   query1.ExecSQL;
  11.  
  12.   Form4.Tabla1.Close;
  13.   Form4.Tabla1.Open;
  14. end;


  • 0

#27 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 10 marzo 2010 - 10:36

Pos es lo mismo, sólo agregas el form donde está el otro query en el form5, suponiendo que el otro form se llama Form4:



delphi
  1. procedure TForm5.Button1Click(Sender: TObject);
  2. begin
  3.   query1.Close;
  4.   query1.SQL.Clear;
  5.   query1.SQL.text:='update BLIBROS set AREA= :area, FOLIO= :FOLIO, TITULO = :titulo WHERE ISBN = :ISBN';
  6.   query1.Parambyname('area').Value := edit1.Text;
  7.   query1.Parambyname('FOLIO').Value := edit2.text;
  8.   QUERY1.ParamBYNAME('titulo').Value := edit3.Text;
  9.   query1.ParamByName('ISBN').Value := edit6.Text;
  10.   query1.ExecSQL;
  11.  
  12.   Form4.Tabla1.Close;
  13.   Form4.Tabla1.Open;
  14. end;


no hace el cambio pero gracias
  • 0

#28 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 10 marzo 2010 - 10:50

Algo mal estás haciendo, po favor, trata de dar más detalles del problema, ¿cómo lo hiciste?, ¿qué hiciste?, ¿cual fue el cambio que hiciste?, ¿cuales son los datasets, datasources que tienes?, ¿cuales son los forms que tienes involucrados?, ¿cómo tienes conectado el DBGrid?, etc etc. Esto no es un chat y tampoco cobramos por letras o oraciones, por favor, envíanos detalles más completos, porque francamente nos tienes adivinando (que conste, no nos molesta), y queremos darte una solución definitiva, pero debes ser más explicativa.

Saludos.
  • 0

#29 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 10 marzo 2010 - 10:55

Hola
Maria; Habla con tu jefe, cambia a Ado y le entramos a esto.
No es que sea pesado, pero me gustaría darte una mano y me seria mas fácil con ADO.
Saludos
  • 0

#30 Alfredo

Alfredo

    Advanced Member

  • Miembros
  • PipPipPip
  • 91 mensajes
  • LocationMéxico

Escrito 10 marzo 2010 - 10:56

podrías poner unas capturas de tus pantallas y explicar exactamente cual es el comportamiento que quieres que tengan?, tengo alguna idea de lo que quieres pero prefiero no comentar todavia nada hasta tener claro cual es tu idea de lo que quieres lograr.

  • 0

#31 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 10 marzo 2010 - 10:59

tengo el form3 es el involucrado por que selecciono una fila y lo paso mediante un boton al form para hacer los cambios de la base de datos por eso por que  en el form3 antes del showmodal puse campo por campo y de ahi lo paso al los edit  a la seleccion ke seleccione en la tabla y de ahi hice campo por campo en el boton guardar lo que quiero hacer es que se cambien los datos y se vean en el form3 tengo todos tquery en todos los forms ligado con los datasource


delphi
  1. procedure TForm5.Button1Click(Sender: TObject);
  2. begin
  3.   query1.close;
  4.   query1.sql.clear;
  5.   query1.SQL.text:='update BLIBROS set AREA= :area,FOLIO= :FOLIO, TITULO = :titulo WHERE ISBN = :ISBN';
  6.   query1.Parambyname('area').AsString:=edit1.Text;
  7.   query1.Parambyname('FOLIO').AsString:=edit2.text;
  8.   QUERY1.ParamBYNAME('titulo').AsString:=edit3.Text;
  9.   query1.ParamByName('ISBN').AsString:=edit6.Text;
  10.   query1.ExecSQL;
  11.   form3.query1.Close;
  12.   form3.query1.open;
  13.   end;


lo ke quiero hacer es que le doy guardar y de ahi cuando se actualize la base de datos se muestre en el form3 que es el principal es todo lo que quiero hacer no mas ni menos
  • 0

#32 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 10 marzo 2010 - 11:02

Pues así como lo tienes debería de funcionar, ahora deberías revisar si estás haciendo el refrescado con el Query correcto, ¿segura no tienes otros Querys en el Form3?, ¿segura que el DataSource del DBGrid tiene apuntado ese mismo Query?.

Saludos.
  • 0

#33 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 10 marzo 2010 - 11:10

María, las capturas las debes de subir al foro, al momento de publicar más abajo antes del botón guardar hay una opción que dice "Opciones adicionales" le das click y te saldrá la casilla para subir imágenes y/o archivos, por favor, edita el post anterior y publica las capturas ;).
  • 0

#34 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 10 marzo 2010 - 11:11

SOLAMENTE KE DIVIDA tengo dos querys en el mismo query1  o en form3 solamente que pase el select*from a otro query
  • 0

#35 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 10 marzo 2010 - 11:20

TENGO DOS QUERYS EN UNO SOLO TQUERY UNO ES PARA MOSTRAR LOS DATOS EN EL DBGRID Y EL OTRO ES PARA RELIZAR LA BUSQUEDA EN UN BOTON
  • 0

#36 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 10 marzo 2010 - 11:23

TENGO DOS QUERYS EN UNO SOLO TQUERY UNO ES PARA MOSTRAR LOS DATOS EN EL DBGRID Y EL OTRO ES PARA RELIZAR LA BUSQUEDA EN UN BOTON


Pues ya vamos avanzando, antes de continuar: Por favor, evita las mayúsculas, aquí lo consideramos como una vociferación, ahora, continuemos, pues aquí no es nada recomendable, utiliza dos Querys, cada uno haga el trabajo de manera exclusiva, uno para mostrar los datos y el otro para realizar la búsqueda, nos comentas.

Saludos.
  • 0

#37 mariarosina1984

mariarosina1984

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 215 mensajes

Escrito 10 marzo 2010 - 11:33

TAMPOCO JALA puse el query2 ahi pase lo de la busqueda tampoco hace la busqueda ni tampoco con el query1. no se ven los datos en el dbgrid actualizado
  • 0

#38 kafastoforman

kafastoforman

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 277 mensajes
  • LocationMexico D.F.

Escrito 10 marzo 2010 - 11:50

TAMPOCO JALA puse el query2 ahi pase lo de la busqueda tampoco hace la busqueda ni tampoco con el query1. no se ven los datos en el dbgrid actualizado


y ¿si ligaste el query2 con el dataset y el datasource y del grid?

Es decir:



delphi
  1. query2.close;
  2. query2.SQL.clear;
  3. query2.SQL.text:= 'SELECT * FROM tabla';
  4. datasource1.dataset:= query2;
  5. dbgrid1.datasource:= datasource1;
  6. query2.open;



Saludos

Kafastoforman
  • 0

#39 Caral

Caral

    Advanced Member

  • Moderador
  • PipPipPip
  • 4.266 mensajes
  • LocationCosta Rica

Escrito 10 marzo 2010 - 11:52

Hola
Veamos asi:
Tienes el form5 que hace el update, parece que ya esta bien, segun entiendo:


delphi
  1. procedure TForm5.Button1Click(Sender: TObject);
  2. begin
  3.   query1.close;
  4.   query1.sql.clear;
  5.   query1.SQL.text:='update BLIBROS set AREA= :area,FOLIO= :FOLIO, TITULO = :titulo WHERE ISBN = :ISBN';
  6.   query1.Parambyname('area').AsString:=edit1.Text;
  7.   query1.Parambyname('FOLIO').AsString:=edit2.text;
  8.   QUERY1.ParamBYNAME('titulo').AsString:=edit3.Text;
  9.   query1.ParamByName('ISBN').AsString:=edit6.Text;
  10.   query1.ExecSQL;
  11.   end;


Ahora lo que quieres hacer es que cuando salgas del form5 y entres en el form3 se muestre el dbgrid actualizado, creo que es asi:
Busca el procedimiento onshow del form3 y coloca este codigo:


delphi
  1. procedure TForm3.FormShow(Sender: TObject);
  2. begin
  3. query1.Close;
  4. query1.open;
  5. end;


Estoy asumiendo que el query1 esta en el form3.
No se, digo...
Saludos
  • 0

#40 luk2009

luk2009

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.040 mensajes
  • LocationSanto Domingo

Escrito 10 marzo 2010 - 11:57

Que estas usando para conectarte a la base de datos
ADO, ZEOS o que?

Seria bueno que pusieras los dos querys que estas usando y si indicas que usas para conectarte con la base de datos, tambien por ahi podria andar el problema.

  • 0




IP.Board spam blocked by CleanTalk.