Ver Mensaje Individual
  #1  
Antiguo 14-04-2009
Memo6015 Memo6015 is offline
Miembro
 
Registrado: ago 2008
Posts: 35
Reputación: 0
Memo6015 Va por buen camino
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

Código Delphi [-]
                   CodigoProducto:=StrToInt('1');
                   ValorModificadoProducto:=48,5;
                   
                   Query:='SP_MODIFICA_PRODUCTO '
                            + IntToStr(CodigoProducto) + ','
                            + FloatToStr(ValorModificadoProducto);
                     Q_ModificaProducto.SQL.Clear;
                     Q_ModificaProducto.SQL.Add(query);
                     Q_ModificaProducto.ExecSQL;

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
Responder Con Cita