Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-11-2009
Avatar de joelphi
joelphi joelphi is offline
Miembro
 
Registrado: feb 2009
Ubicación: Guerrero
Posts: 24
Poder: 0
joelphi Va por buen camino
Guardar en Campo Money..

Hola a todos:

Antes de todo debo agradecer a las personas que donan tiempo en contestar soluciones a problemas..

Como siempre necesito su ayuda, Resulta que trabajo en una aplicacion en Delphi 2007 y Sql server 2000. Tengo una tabla con los siguientes campos.


Tabla : Pagos

Campos:
Id_Pago Numeric Autoincrementable
Monto_Pago Money

mi problema es que cuando mando un query de insercion al manejador me manda un error, el query esta mas o menos de la siguiente manera

Metodo
var Monto_Pago:Currency
begin
BasedeDatos.Actualizar('Insert Into Pagos(Monto_Pago)'
+' Values('+QuotedStr(CurrToStr(Monto_Pago))+')';
Fin_Metodo

---------------------------------------------------
resultado en String

'Insert into Pagos(Monto_Pago) Values(22,22) '

y me genera un error en donde me dice que no se puede convertir a money un tipo char..

Observé que solo me guarda cuando introduzco en vez de coma punto. pero no se como hacerlo desde delphi, alguien conoce una manera?


Agradecere Infinitamente a quien me ayude..

Última edición por joelphi fecha: 14-11-2009 a las 07:34:56.
Responder Con Cita
  #2  
Antiguo 16-11-2009
Avatar de javier7ar
javier7ar javier7ar is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 124
Poder: 19
javier7ar Va por buen camino
El error es por el separador de decimales, debe ser un punto en lugar de una coma.
Te recomiendo que uses parametros, que te salvan de todos esos problemas de configuracion regional
Código Delphi [-]
  qInserta.SQL.Add('Insert Into Pagos (Monto_Pago)');
  qInserta.SQL.Add('Values (:Monto_Pago)');

  qInserta.ParamByName('Monto_Pago').Value:=Monto_Pago;
  qInserta.ExecSQL;

Esa me parece que es la mejor solucion. Si no te convence y preferis seguir usando tu funcion lo que podes hacer es usar la funcion StringReplace para convertir la coma a un punto despues de hacer la conversion a string.
Saludos
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
campo money en Firebird ebeltete Firebird e Interbase 23 02-05-2008 19:11:11
Obtener la parte decimal de un campo money mbelda MS SQL Server 4 08-02-2008 16:10:21
Tipo de campo rxmemorydata, money Petolansa Varios 5 25-10-2007 18:29:46
Problema con búsqueda en campo tipo MONEY micki MS SQL Server 3 19-07-2007 17:10:59
Problema en guardar campo ramiretor Conexión con bases de datos 2 16-10-2003 19:12:03


La franja horaria es GMT +2. Ahora son las 10:43:10.


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