FoxPro/Visual FoxPro - SQL + uno a muchos

 
Vista:

SQL + uno a muchos

Publicado por Martín (19 intervenciones) el 07/07/2009 19:16:49
¡Hola, gente! Generalmente los leo por acá y trato de buscar otro tema para mi consulta antes de abrir un hilo, pero esta vez no lo encontré.

Bien, trataré de explicar a grandes rasgos mi problema. Estoy desarrollando en VFP 9 + MS SQL SERVER 2000. Tengo una clase de formularios diseñada para maestros o padrones.

Digamos que un maestro suele tener tres campos SIEMPRE. Uno es el campo ID, otro la descripción y otro el campo "baja". Entonces, en el formulario creo tres propiedades, una diciendo el nombre del campo ID, otra diciendo el nombre del campo descripción y otra que tiene el nombre del campo baja.

¿Con esto qué logro? Que para todo maestro con la estructura básica de estos tres campos, escribiendo un buen código en la clase del formulario, me evito tener que escribir los INSERTS o UPDATES para todos los maestros, simplemente trato las diferencias que puedan tener los maestros con campos adicionales.

Ahora bien, todo esto me está funcionando bárbaro para los formularios que graban en una sola tabla. La clase me crea la instrucción INSERT (o UPDATE según el caso) y resuelve la grabación en el SQL, y con esto no tengo que escribir código en un montón de formularios... simplemente ajustando estas tres propiedades tengo resueltos un montón de padrones simples. Pero me está fallando con los "uno a muchos".

Supongamos que tengo un padrón que tiene otras tablas relacionadas. Por ejemplo, un padrón de clientes, con una tabla adicional que tenga los contactos que tengo con esos clientes (quién es el vendedor, quién es el pagador, etc. etc. etc.). Voy a tener un registro para grabar en mi tabla "clientes" de SQL y N registros a grabar en mi tabla "clientes_contactos".

Bien, la lógica no me funciona. Como siempre, dispara el Insert o Update standard, y tiene un método adicional al que invoca para otras grabaciones. Bueno, en el SQL no me graba NADA. Ni los clientes ni los contactos. Las instrucciones están bien, hasta donde yo las pude seguir. También los inserts que me genera la clase, los chequeé y las instrucciones que genera son correctas.

No sé por dónde me puede estar generando esta falla. La clase funciona perfecto en otros padrones, con lo cual la lógica funciona, pero deja de funcionar cuando trabajo con dos tablas. Mi pregunta es: ¿debe ser porque no estoy utilizando "BEGIN TRANSACTION... END TRANSACTION"? ¿Hay algo especial que deba atender cuando quiero mandarle al SQL dos INSERTS (o dos UPDATES) a dos tablas desde el mismo formulario?

Pido ayuda porque todo esto ya me está sacando de quicio, jajaja.

Abrazos,

Martín.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder