Insertar y/o modificar un campo con decimales
Hola a todos,
Nuevamente necesito de vosotros para seguir adelante. Desde hace un tiempo me he acostumbrado a hacer las inserciones/modificacioens en las bases de datos sin utilizar campos permanentes, simplemente monto la sentencia SQL antes de ejecutarla y le añado los campos que se insertan o modifican: Código:
SqlText:='INSERT INTO Proyectos (Descripcion, Importe) VALUES ('QuotedStr(AnsiUpperCase(Edit2.Text)) INSERT INTO Proyectos (Descripcion, Importe) VALUES ('PRUEBA', 125,85) como podeís ver, la coma decimal del importe me convierte ese importe en dos valores para la sentencia SQL y da error (porque tengo dos campos y tres valores). ¿Alguién me puede dar un consejo? Muchas gracias anticipadas. |
Salva algunas casos muy especiales nunca se deben montar las queries de ese modo, siempre siempre hay que usar parametros, por motivos de eficiencia y seguridad.
Saludos |
Solucionado
Era simple pero no se me ocurría, basta con sustituir las comas por puntos en el momento de preparar la sentencia.
Donde ponía CurrencyEdit1, sustituirlo por StringReplace(CurrencyEdit1.Text, ',', '.', [rfReplaceAll]) Así todo funciona perfectamente. supongo que habrá algún otro método más ajustado pero el caso es que funcione. Saludos a todos. |
Si hay un método mejor, utilizar parámetros.
Si utilizaras parámetros no tendrías que hacer eso truquitos para guardar decimales. :) Y tambien podrías ahorrarte la variable SQLText. Ejemplo:
|
Cita:
Por cierto, esto me recuerda este artículo ... http://www.clubdelphi.com/foros/show...en+programador |
Muchas gracias a todos por vuestras aportaciones.
Disculpad la tardanza pero este fin de semana ha sido "off line". Los motivos de montar las sentencias así son dos: primero mi falta de conocimiento, y segundo el que un compañero empezó a hacerlo así. Inicialmente me definía los campos de forma permanente, pero me complicaba la vida tener que introducir una sentencia sólo para poder definir los campos, aunque tenía sus ventajas como ponerles las propiedades a los campos (título, formato, ... ). Además, mis compañeros no controlaban esta forma y no sabían modificar los que yo creaba, así que lo mejor me acoplé yo a su forma. Le agradezco a ContraVeneno que haya traducido mi codigo poniendole parámetros. Tomo nota y me pongo a cambiar el código que estoy haciendo. Y también me tomo nota del artículo. Todo lo que sea aprender me parece bien (aunque me pilla viejo). Saludos. |
La franja horaria es GMT +2. Ahora son las 19:24:52. |
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