A ver, vamos por partes.
Cita:
Empezado por pnikkosis
Ya aprendi a asignarle valores a las variables desde delphi,haciendo IBStoredProc1.Params[0...N].AsString o ParamsByName y el nombre
|
Cierto, la forma de pasarle datos a un SP desde Delphi (o desde otro lenguaje) es por parámetros de entrada, o "inputs" como tú los has llamado antes
Cita:
Empezado por pnikkosis
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
|
Seguramente tenga que ver con que no has definido clave o claves primarias en la nueva tabla. Define como tal por ejemplo el campo código.
Cita:
Empezado por pnikkosis
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?
|
Sí, es problema de transacciones. Por lo que me cuentas hasta que no cierras el programa no hace el commit. Ya que has nombrado el IBTransaction puedes hacer que el IBStorecProc apunte a una IBTransaction y esta a su vez apunte a tu IBDatabase. Debes poner las propiedades del IBTransaction
DefaultAction := TACommit y
AutoStopAction := saCommit.
De todas formas sigo manteniendo en pie mi planteamiento anterior ya que ejecutarías el SP una sola vez, y tú lo vas a ejecutar por cada registro que exista. Si hay 6000 pues 6000 veces

pero me reitero otra vez, todo es cuestión de probarlo y ver el rendimiento que obtienes.