Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
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 04-03-2005
DynaRoc DynaRoc is offline
Miembro
 
Registrado: nov 2004
Posts: 12
Poder: 0
DynaRoc Va por buen camino
no actualiza un campo correctamente ( decimal)

Hola pues tengo lo siguiente :

TSQLConnection
TSQLQuery ( llamado qryModifica)

con 1 TcurrencyEdit llamado precio

luego tengo la el campo PRECIO el cual es un numeric(15,4)

pues bien actualizo dicho campo de la siguiente manera..

Código:
with datos.qryModifica do begin
  SQL.Add('UPDATE articulos SET PRECIO1 = ''' + precio.Text + '''');
  SQL.Add('WHERE clave = 7507');
  ExecSQL;
  end;
Si le meto por ejemplo : 12,12

en la db se guarda como 1212 ( sin la , )


alguien me puede ayudar?

saludos y gracias..
Responder Con Cita
  #2  
Antiguo 04-03-2005
AdrianD AdrianD is offline
Miembro
 
Registrado: may 2003
Ubicación: San Juan - Argentina
Posts: 113
Poder: 21
AdrianD Va por buen camino
por que cargarlo de esa maner???
Lo mejor seria con un parametro

with datos.qryModifica do begin
SQL.Add('UPDATE articulos SET PRECIO1 = :Precio');
SQL.Add('WHERE clave = 7507');
ParamByName('Precio').AsCurrency := StrToCurr(precio.Text);
ExecSQL;
end;
ExecSQL;
end;
Responder Con Cita
  #3  
Antiguo 04-03-2005
DynaRoc DynaRoc is offline
Miembro
 
Registrado: nov 2004
Posts: 12
Poder: 0
DynaRoc Va por buen camino
gracias AdrianD por contestar

lo que me has indicado funciona la 1º vez ( algo raroo)

no tenía conocimiento de parametros ( para que veas que estoy algo verde xD).


en realidad tengo 3 datos reales en una clase derivada de TField ( QcurrEdit)

la cual me devuelve un valor real con el método Value ( ejemplo : Precio.value)

a la hora de hacer la actualización obtengo un error EdatabaseError parametro 'Descuento' no found.

tengo lo siguiente a la hora de actualizar :


Código:
SQL.Add('UPDATE clientes SET nombre = ''' + txtNombre.Text + ''',');
SQL.Add('RFC = ''' + txtRfc.Text+ ''',');
SQL.Add('CALLE = '''+ Calle.Text + ''',');
SQL.Add('Ciudad = '''+ Ciudad.Text+ ''',');
SQL.Add('LOCALIDAD = '''+ localidad.Text + ''',');
SQL.Add('ESTADO = '''+ estado.text+ ''',');
SQL.Add('CP = ''' + cp.Text + ''',');
SQL.Add('DESCUENTO =  :Descuento '',');
....
...
SQL.Add('LIMITECREDITO = :Credito '',');
SQL.Add('precio =  :Precio ' );
SQL.Add('WHERE clave = ' + IntToStr(iClave));
ParamByName('Descuento').AsString  := FloatToStr(txtDescuento.Value);
ParamByName('Credito').AsString := FloatToStr(txtCredito.Value);
ParamByName('Precio').AsString := FloatToStr(txtPrecio.Value);
ExecSQL;
Close;
Si pudieras orientarme, es que haciendolo directamente ( sin parametros) no se guarda la maldita coma (,)


saludos
Responder Con Cita
  #4  
Antiguo 04-03-2005
AdrianD AdrianD is offline
Miembro
 
Registrado: may 2003
Ubicación: San Juan - Argentina
Posts: 113
Poder: 21
AdrianD Va por buen camino
Vamos al principio:
1- ¿Que componentes usas?
2- ¿Por que cargar el query de esa forma y no hacerlo en tiempo de diceño?
3- si para 2 hay una respuesta valida, antes de volverlo a cargar deberias "limpiarlo" con: datos.qryModifica.SQL.Clear; o algo parecido
Responder Con Cita
  #5  
Antiguo 05-03-2005
DynaRoc DynaRoc is offline
Miembro
 
Registrado: nov 2004
Posts: 12
Poder: 0
DynaRoc Va por buen camino
1- ¿Que componentes usas?

TSQLConnection
TSQLQuery ( llamado qryModifica)

2- ¿Por que cargar el query de esa forma y no hacerlo en tiempo de diceño?

Pq dicho query lo utilizo tb para otros updates de diferentes tablas y en otros forms.


3- aqui no te entiendo.

El problema que tengo es que a la hora de actualizar/insertar el campo precio, no se me actualizan/insertan los decimales ( si le meto 1,2 al hacer el update se guarda como 12)

saludos y espero que me heches una mano, ya que no puedo seguir haciendo cosas sin resolver este problema.

gracias y saludos
Responder Con Cita
  #6  
Antiguo 05-03-2005
DynaRoc DynaRoc is offline
Miembro
 
Registrado: nov 2004
Posts: 12
Poder: 0
DynaRoc Va por buen camino
he estado por ahy y a lo mejor puede ser por culpa de la base de datos

en la propiedad DEFAULT CHARACTER SET;

esta propiedad indica el juego de caracteres que se utiliza

podría poner lo siguiente ?

DEFAULT CHARACTER SET WIN1250;

que opinas ?

saludos
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


La franja horaria es GMT +2. Ahora son las 15:05:40.


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