Claves autoincrementales, tablas relacionadas y método sincronizar()

Estimados amigos, tengo un problema. Ya se me presentó antes y, como era urgente lo solucioné de una manera poco ortodoxa. Ahora me gustaría hallar, con vuestra ayuda, una forma que use bien el Toba.

Dado un Datos Relación de dos tablas (pueden ser más), donde la clave de la tabla padre es un valor autoincremental cuyo abm se realiza a través de dos pantallas accesibles mediante solapas, cada una con un formulario; quisiera saber si el método sincronizar() prevee el hecho de que no se conoce el valor del campo que las relaciona hasta tanto no se haya hecho efectiva la grabación.

Resumiendo, no puedo asignarle el valor del campo id del padre a los hijos porque no lo conozco.

No se si me expliqué bien.

Agradeceré sus respuestas.

Un cordial saludo y gracias por su paciencia.

Hola Claudio,

la idea de un datos_relacion es justamente esa, que vos no tengas que andar propagando explicitamente las claves autogeneradas a las tablas hijas, sino que el mismo objeto se encarga de ir asignandolas por vos.
Por experiencia te digo que muchas veces el problema es que la relacion esta armada al reves, es decir… la FK esta en la tabla equivocada y quien deberia ser hijo termina siendo padre (no quiere decir que sea este caso).

Contame un poco mas de tu caso y vemos como lo resolvemos.

Saludos

Hola Richard, gracias por tu respuesta.
En realidad tuve un solo caso y, como no sabia si los métodos de persistencia contemplaban este caso, o sea, armar un Datos Relación cuya tabla padre sea un autoincremental y la hija se relacionara por ese campo, lo hice a manopla. De hecho, ahora estoy con un caso similar pero sin apuro, por lo que me acordé del anterior y pregunto.
Voy a probar a ver si graba todo bien y si hago agua, te molesto de nuevo.
Por otro lado, hay un asuntito que me queda picando, ya que tanto en el caso anterior que te menciono como en otro caso en el que necesitaba saber con que valor de id. generó el registro, no me avivo de como obtenerlo con los métodos de toba, por lo cual tuve que usar el “insert…returning”, pero en lugar de usar el método sincronizar(), use $x=toba::db()->consultar($sql); Lo cual, si bien es efectivo, no es elegante para el entorno Toba, y nosotros, los tobianos queremos ser elegantes.

Si hay una forma, pasame el chisme.
Gracias de nuevo.

Bueno, todo ok con los métodos de persistencia. Funciona muy bien.
Me queda solo la úlktima duda.
Si doy el alta de un autoincremental, ¿como obtengo, con seguridad, el id. que generó el sistema? Lo necesito con total seguridad. Lo que en realidad quiero saber es si el sincronizar() tiene la posibilidad de devolver dicho valor.
Gracias.

Hola Claudio,

luego de ejecutar la sincronizacion (y antes de hacer un resetear), el valor para esa columna debe de estar cargado en el datos_tabla correspondiente. Por tanto, si intentas recuperar el valor para dicha columna autoincremental, deberias poder obtener con que secuencia se guardo.

Saludos