Ver Mensaje Individual
  #14  
Antiguo 04-12-2009
Avatar de pnikkosis
pnikkosis pnikkosis is offline
Miembro
 
Registrado: nov 2009
Ubicación: Buenos Aires
Posts: 15
Reputación: 0
pnikkosis Va por buen camino
Ok, lo tengo casi listo, tengo un problema con el SP nada mas, te cuento lo que hice:

Código SQL [-]
CREATE PROCEDURE SP_UPDATEORINSERT2(
codigo VARCHAR(20),
nombre VARCHAR(50),
precio NUMERIC(10,4),
AS BEGIN
IF (:codigo = 'T.CODIGO')
THEN UPDATE TABLANUEVA T SET
LOCAL2 = recio WHERE CODIGO = :codigo;
ELSE INSERT INTO TABLANUEVA (CODIGO,NOMBRE,LOCAL1,LOCAL2)
VALUES (:codigo,:nombre,0,recio)
END;

Ya aprendi a asignarle valores a las variables desde delphi,haciendo IBStoredProc1.Params[0...N].AsString o ParamsByName y el nombre, y despues que tengo todos asigandos hago .ExecProc me funciona el correrlo
Ahora, tengo dos problemas con ese SP: 1, no me esta tomando cuando el codigo existe, ponele que tengo el codigo 001 en la tabla y pongo como la variable :codigo 001, no corre el update sino que hace un insert y me quedan dos filas en la tabla con el codigo 001, raro.
Y el otro problema que tengo es... no se si como actualiza o que, pero hice una interfaz chica de prueba en delphi, con 3 edits le asigno valores a las variables y un boton corre el SP, pero hasta que no cierro la aplicacion la tabla parece que no se actualiza; uso el IBExpert como Database manager y desconecto la base, la vuelvo a abrir y lo que corri en el SP no aparece, pero si cierro la aplicacion de delphi, ahi se graba a la base y me aparece. Tiene algo que ver con hacer un commit? Tengo que tocar el componente IBTransaction?
Responder Con Cita