FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Problema con Modificar Tabla desde Delphi
Hola Amigos de clubcdelphi la verdad es que tengo un problema con la modificacion de una tabla en SQL, tengo un programa que modifica la tabla a traves de un procedimiento almacenado llamado ModificaProductos
la tabla que esta en sql contiene los campos Codigo de tipo entero, NombreProducto de tipo varchar y Cantidad de tipo varchar por ejemplo Tabla Productos Codigo NombreProducto Cantidad 1 fierro 20 2 cobre 30 3 acero 20,7 ok, tengo el procedimiento almacenado que se llama modificaproducto, este procedimiento recibe dos parametros que son el codigo del producto y la cantidad, si lo invoco en SQL server asi modificaproducto 1,'45,8' me cambiaria sin problema la cantidad de fierro por 45,8. Pero cuando lo llamo en delphi de sta forma
me arroja un error por que delphi cree que van mas parametros de los que soporta el procedimiento me explico: si CodigoProducto = 1 y ValorModificadoProducto = 45,6 SQL cree que delphi manda el procedimiento de esta forma ModificaProducto 1,45,6 y si se dan cuenta en vez de haber solos dos parametros sql lo toma como si fuesen 3 el numero 45,6 lo toma como dos parametros y no todo junto como un string no se si me entienden, debido a esto no puedo modificar lso productos por que claro sql me reclama el error amigos alguien me podria ayudar con el procedimiento para cuando vaya un valor con coma se tome asi ModificaProducto 1,'45,8' y no asi ModificaProducto 1,45,8. Espero que me hayan entendido intente ser lo mas claro y conciso posible gracias por todo espero sus respuestas Ojo: la cantidad la declare como varchar y no como real por que todo el trabajo lo hago en el programa y le retorno un string al campo cantidad, al declararlo como real tenia problema con los puntos y las comas y como no quiero cambiar la configuracion regional por que eso no seria justo con otros programas lo hice asi |
#2
|
||||
|
||||
Se me ocurre que manualmente modifiques la cadena antes de enviarla, o si te es últil, cambies los parámetros para toda la aplicación.
En mi caso utilizo un procedimiento similar a este:
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Los STORE PROCEDURES deben de ser invocados con otro METODO
En lugar de usar el componente QUERY debes de usar un componente STOREPROCEDURE..
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton |
#4
|
||||
|
||||
La recomendación de pcicom me parece es la más adecuada y la que deberías utilizar.
Pero podrías probar:
Insisto, lo que propone pcicom es lo más adecuado.
__________________
|
#5
|
|||
|
|||
amigos disculpenme si los hice perder el tiempo, es que a veces la solucion es tan facil y esta ahi mismo pero uno no se imagina como hasta que me di cuenta de una cosa bueno ojala esto e sirva a otra persona para no estar cambiando la configuracion regional
lo que pasa es que la tabla tiene Codigo de tipo entero, NombreProducto de tipo varchar y Cantidad de tipo varchar la cantidad es de tipo varchar o sea string entonces lo mas logico es que yo al modificar al tabla con los datos listos para enviar, deberia mandar un dato de tipo string no un real convertido a string, si se fijan en el ejemplo que di, desde delphi puse esto:
como ven estoy transformando el valor de un reala un string pero claro me va a reclamar por que le estoy mandando 3 parametros en vez de dos y como sql separa en sus procedimientos por comas esto no poria ser jamas, bueno la solucion era muy facil solo habia que cambiar el FloatToStr(ValorModificadoProducto); por + Chr(39) + ValorModificadoProducto + Chr(39); con esto el digo al procedimiento que todo lo que este entre Chr(39) quede como string ya que Chr(39) es el codigo ascci de el caracter ' bueno deje el procedimiento asi
con eso quedaria asi SP_MODIFICA_PRODUCTO 1,'dsdad' ok eso seria muchas gracias por la ayuda que me dieron, espeor le sirva a alguien eso gracias a todos ya resolvi el problema |
#6
|
|||
|
|||
Al final de cuentas no le veo sentido a que uses store procedures para una modificacion de este tipo ya que lo puedes usar directamente, salvo que tengas mas acciones dentro del STOREPROCEDURE realices mas acciones.
que segun tu codigo seria
En fin, al final de cuentas siempre se pueden inventar muchos caminos para llegar a ROMA... Jejeje SAUDOS..
__________________
Poco ha de saber el que no pregunta.. Yo por eso soy un pregunton |
#7
|
|||
|
|||
hola no sabia que existia el storedprocedure para ejecutar procedimientos de sql es que la verdad es que me manejo de manera bastante pobre en delphi no asi en java que es mi fuerte y como todo es tan diferente en java a como lo es en delphi y de delphi la verdad no he visto hace bastante tiempo, aun tengo instalada la version 6 y que es la que mas me gusta jejeje pero como aca en el trabajo estan haciendo cosas en delphi me sirvio para recordar este lenguaje, bueno agradezco la ayuda, gracias por los consejos
y si tienes mucha razon hay muchos caminos para llegar a roma jejjejeeje saludos Última edición por Memo6015 fecha: 16-04-2009 a las 02:10:00. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Modificar Word (.DOC) desde Delphi | Siem | Servers | 5 | 15-12-2014 15:25:37 |
problema con delphi 5 tras modificar el tipo de una columna en una tabla | rlago | Firebird e Interbase | 2 | 10-11-2006 22:49:40 |
Modificar campo tabla access desde delphi | JuanHC | Conexión con bases de datos | 3 | 25-09-2006 13:15:02 |
Problema al modificar y consultar tabla | suppergus | Tablas planas | 2 | 17-08-2005 00:55:45 |
Modificar texto de un pdf desde delphi | Masu | Varios | 1 | 04-06-2005 16:16:40 |
|