Ver Mensaje Individual
  #2  
Antiguo 04-12-2009
Avatar de Axel_Tech
Axel_Tech Axel_Tech is offline
Miembro
 
Registrado: nov 2008
Ubicación: lugar en que está ubicado algo.
Posts: 85
Reputación: 18
Axel_Tech Va por buen camino
A ver, vamos por partes.
Cita:
Empezado por pnikkosis Ver Mensaje
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 Ver Mensaje
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 Ver Mensaje
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.
__________________
No hope, no dreams, no love, my only escape is Underground
Responder Con Cita