Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-12-2011
lucas05 lucas05 is offline
Miembro
 
Registrado: ago 2010
Posts: 116
Poder: 14
lucas05 Va por buen camino
guardar dato siempre en el mismo registro

Hola, tengo una tablaA con dos campos ta_id y ta_valor.
Esta tabla posee un unico regitro, cuyo campo ta_valor va a ser modificado constantemente.
Como puedo hacer para que vez que ingreso un valor en un edit, este se guarde siempre en ese único
registro (en el campo ta_valor).
Lo que intento hacer es reescribir simpre el mismo registro
Estoy usando un edit1,button1 y adoquery1

Espero haber sido claro.

Muchas Gracias
Responder Con Cita
  #2  
Antiguo 13-12-2011
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Cita:
Empezado por lucas05 Ver Mensaje
Hola, tengo una tablaA con dos campos ta_id y ta_valor.
Esta tabla posee un unico regitro, cuyo campo ta_valor va a ser modificado constantemente.
Como puedo hacer para que vez que ingreso un valor en un edit, este se guarde siempre en ese único
registro (en el campo ta_valor).
Lo que intento hacer es reescribir simpre el mismo registro
Estoy usando un edit1,button1 y adoquery1

Espero haber sido claro.

Muchas Gracias
Utiliza la sentencia SQL "Update", es lo único que debes hacer.

Código SQL [-]
Update TuTabla Set Campo1 = 'xxx', Campo2 = 2, ... CampoN = 'N' Where CampoLlave = TuLlave;
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #3  
Antiguo 13-12-2011
lucas05 lucas05 is offline
Miembro
 
Registrado: ago 2010
Posts: 116
Poder: 14
lucas05 Va por buen camino
Hola, gracias por responder, use el siguiente código, pero cuando lo compilo da error.
Código Delphi [-]
ADOQuery1.Close;
ADOQuery1.SQL.Add('Update tablaA');
ADOQuery1.SQL.Add('Set ta_valor= '+FloatToStr(Edit1.Text));//Aqui da error al compilar
ADOQuery1.SQL.Add('where ta_id=1');
ADOQuery1.ExecSQL;

Podrían decirme cual es el error.

Muchas Gracias.
Responder Con Cita
  #4  
Antiguo 13-12-2011
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
que error te muestra
Responder Con Cita
  #5  
Antiguo 13-12-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.467
Poder: 21
newtron Va camino a la fama
Bueno, no dices qué error te da pero en principio no puedes hacer un FloatToStr de un valor tipo string así que tendrías que poner lo siguiente:

Código Delphi [-]
ADOQuery1.SQL.Add('Set ta_valor= '+Edit1.Text);

teniendo en cuenta que el valor que tengas en Edit1 no tenga comas de miles y valor decimal sea un punto.

Saludos
__________________
Be water my friend.
Responder Con Cita
  #6  
Antiguo 13-12-2011
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Pues le va a mostrar un error tal que diciendo que no se puede convertir un texto desde Float a String

Código Delphi [-]
FloatToStr(Edit1.Text))/

Edit1.Text es de tipo String (Texto, tal y como la propia propiedad lo indica .text) y está intentanto utilizar una función FloatToStr, que como parámetro espera un dato del Tipo Float (es decir un número decimal).

__________________
Piensa siempre en positivo !
Responder Con Cita
  #7  
Antiguo 13-12-2011
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.467
Poder: 21
newtron Va camino a la fama
Cita:
Empezado por gluglu Ver Mensaje
Pues le va a mostrar un error....
Pandilla de buitres.... para una que puedo contestar yo me la queréis quitar.
__________________
Be water my friend.
Responder Con Cita
  #8  
Antiguo 13-12-2011
lucas05 lucas05 is offline
Miembro
 
Registrado: ago 2010
Posts: 116
Poder: 14
lucas05 Va por buen camino
Hola, estoy intentando otra manera, no se si esta bien
Código Delphi [-]
ADOQuery1.Close;
ADOQuery1.SQL.Add('Update tablaA');
ADOQuery1.SQL.Add('Set ta_valor=: ');//Aquí no entiendo que debo asignarle a Set
ADOQuery1.SQL.Add('Where ta_id=:1');
ADOQuery1.FieldByName('ta_valor').AsInteger:=StrToInt(Edit1.Text);//Necesito esta linea para guardar los cambios?
ADOQuery1.Open;




Muchas Gracias.
Responder Con Cita
  #9  
Antiguo 13-12-2011
Avatar de microbiano
microbiano microbiano is offline
Miembro
 
Registrado: sep 2008
Ubicación: Mexico D.F
Posts: 349
Poder: 16
microbiano Va por buen camino
haber haber como que no entiendes que asignarle al set?, creo que primero deberiamos pasar por un manual de sql jejejejeje.


yo lo hago asi espero te sirva.

Código Delphi [-]
with Form_modulo.Qry_Temp do
              begin
                SQL.Clear;
                SQL.Add('update agenda set tipo=:Ptipo');
                SQL.Add(',unidadcompradora=:Punidad');
                SQL.Add(',descripcion=:Pdescripcion');
                SQL.Add(',DePreconvocatoria=:Pdepreconv');
                SQL.Add(',HastaPreconvocatoria=:PHastaPreconvocatoria');
                SQL.Add(',Repcepcion=:PRepcepcion');
                SQL.Add(',RecepcionHora=:PRecepcionHora');
                SQL.Add(',Fallo=:PFallo');
                SQL.Add(',FalloHora=:PFalloHora');
                SQL.Add(',Ejercicio=:PEjercicio');
                SQL.Add(',status=:Pstatus');
                SQL.Add(',Claves=:PClaves');
                SQL.Add(',Importe=:PImporte');
                sql.Add('Where id=:Pid');
                Parameters.ParamByName('Ptipo').Value:=self.cbb_tipo.ItemIndex;
                Parameters.ParamByName('Punidad').Value:=Self.txtunidad.Text;
                Parameters.ParamByName('Pdescripcion').Value:=Trim(Self.txtnotas.Text);
                Parameters.ParamByName('Pdepreconv').value:=int(Self.dtpFechaPreIni.Date);
                Parameters.ParamByName('PHastaPreconvocatoria').Value:=int(self.dtpFechaPreFin.Date);
                Parameters.ParamByName('PRepcepcion').Value:=Int(self.dtpFecharecp.Date);
                Parameters.ParamByName('PRecepcionHora').Value:=timetostr(self.dtpHoraRecep.Time);
                Parameters.ParamByName('PFallo').Value:=Int(self.dtpFechaFallo.Date);
                Parameters.ParamByName('PFalloHora').Value:=TimeToStr(self.dtpHoraFallo.Time);
                Parameters.ParamByName('PEjercicio').Value:=Trim(Self.txtejercicio.Text);
                Parameters.ParamByName('PStatus').Value:=Self.cbb1.Text;
                Parameters.ParamByName('PClaves').Value:=Int(Self.txtclaves.Value);
                Parameters.ParamByName('PImporte').Value:=Self.txtimporte.Value;
                Parameters.ParamByName('Pid').Value:=Self.widentificador;
                try
                  ExecSQL;
                  Application.MessageBox('Las Modificaciones se Realizarón Exitosamente en la Adjudicación',PChar(Application.Title), MB_OK + MB_ICONINFORMATION);
                  limpiar;
                  botones(0);
                  Exit;
                except
                  on e:EOleException do
                    begin
                      MessageDlg(Format('Error: %s    Codigo: %d', [E.Message, E.ErrorCode]), mtError, [mbOK], 0);
                      Exit;
                    end;  
                end;

              end;

adaptalo a lo que necesitas
Responder Con Cita
  #10  
Antiguo 13-12-2011
Avatar de olbeup
olbeup olbeup is offline
Miembro
 
Registrado: jul 2005
Ubicación: Santiago de la Ribera (España)
Posts: 685
Poder: 19
olbeup Va camino a la fama
Cita:
Empezado por lucas05 Ver Mensaje
Hola, gracias por responder, use el siguiente código, pero cuando lo compilo da error.
Código Delphi [-]
ADOQuery1.Close;
ADOQuery1.SQL.Add('Update tablaA');
ADOQuery1.SQL.Add('Set ta_valor= '+FloatToStr(Edit1.Text));//Aqui da error al compilar
ADOQuery1.SQL.Add('where ta_id=1');
ADOQuery1.ExecSQL;

Podrían decirme cual es el error.

Muchas Gracias.
Si es un único registro, el WHERE sobra, ya que va actualizar sólo un registro siempre y cuando exista algún registro.

Sobre que te da error en
Cita:
ADOQuery1.SQL.Add('Set ta_valor= '+FloatToStr(Edit1.Text));//Aqui da error al compilar
Lo de convertir un Float a String, pues va ser que no cómo dice gluglu.
También depende que el campo ta_valor sea de tipo decimal si es así, prueba con esto:
Código Delphi [-]
...
var
  S: String;
  X: Extended;
begin
  X := StrToFloat(Edit1.Txt);
  Str(X:0:3, S);
  with ADOQuery1 do
  begin
    Close;
    SQL.Add('UPDATE TablaA');
    SQL.Add('  SET TA_VALOR = ' + S);
    ExecSQL;
  end;
end;

Si tienes que escribir siempre en la TablaA, añade a la TablaA tantos campos cómo datos diferentes pidas, guardándolos en su campo correspondiente para después recuperarlos.

Un Saludo.
__________________
Al hacer una consulta SQL, haz que los demás te entiendan y disfruten de ella, será tú reflejo de tú saber.
Responder Con Cita
  #11  
Antiguo 14-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Para este caso en especial, otra forma puede ser:
Código Delphi [-]
var
  v: Double;
begin
  if TryStrToFloat(Edit1.Text, v) then
    with ADOQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('UPDATE TABLA');
      SQL.Add('SET TA_VALOR = :VALOR');
      Parameters.ParamByName('VALOR').Value:= Edit1.Text;
      ExecSQL;
    end
  else
    raise Exception.Create('El valor ingresado no es un numero válido');
end;
Aunque siempre utilizo try/except como suguiere microbiano.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #12  
Antiguo 14-12-2011
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Cita:
Empezado por olbeup Ver Mensaje
Si es un único registro, el WHERE sobra, ya que va actualizar sólo un registro siempre y cuando exista algún registro.
Yo estaba dando la estructura de la sentencia, no la solución. Perdón si se mal entendió.
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
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
Firebird, No siempre utiliza el mismo PLAN? Kipow SQL 12 03-12-2015 16:35:22
random siempre me da el mismo valor sabueso1010 Varios 5 23-07-2011 02:19:36
Problemas con Rave Report, siempre el mismo Paulao Varios 0 09-03-2011 15:38:32
Foco siempre en el mismo tedit Viky Varios 2 14-06-2010 18:37:06
Guardar variariable reeemplazando en el mismo registro Petolansa Varios 9 10-11-2007 04:18:28


La franja horaria es GMT +2. Ahora son las 00:56:20.


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