PDA

Ver la Versión Completa : problemas con inserciones de registros en varios querys


anubis
16-02-2011, 16:45:46
Hola.
Yo sigo dando la lata con esto a ver si hay algo de luz al final.;).

Voy a intentar explicarme mejor que en el otro post a ver si me sale.

Estoy intentando hacer una agenda de telefonos donde tengo varias tablas relacionadas entre si.
En principio no hay problema en las consultas pero si en las inserciones.
Tal y como me apunta Chris en el otro post, la solucion es usar una tabla en memoria y me he pusto a ello, pero me salen varios problemas.

En principio, a ver si esta bien, uso el datasource apuntando al query para las consultas, y cuando voy a dar de alta un registro cambio ese datasource por el que tengo en memoria y asi uso los mismos objetos para consulta e insercion.

las preguntas que queria haceros son las siguientes a ver si entran de la logica decente de programacion:

-si tengo una tabla de contactos y otra de telefonos (pueden ser 1 a n por contacto), a la hora de trasbasar esa tabla de telefonos a la original es justo que lea uno por uno para darlos de alta o hay otra forma.
- Tengo otra tabla que es provincias en un tdcombolookup relacionada por codigo con la tabla principal de contactos, cuando hago consulta me selecciona la provincia correcta.

Finalmente como resumen, es normal a efectos de programacion intercambiar los datasource (memoria y tabla) segun convenga? o es un buen modo de tener mas errroes o corrupcion de la base de datos (por ejemlo)

Perdonad esta "parrafada" y gracias por todo

BlueSteel
16-02-2011, 20:47:13
Hola anubis

bueno, no se cual es el otro post... pero yo he trabajado con tablas de memoria y me ha ido muy bien....

--- corrección.. ya se de cual post hablabas (http://www.clubdelphi.com/foros/showthread.php?t=72310)...

Entiendo que quires hacer una agenda de telefonos, en donde puedes tener un contacto que puede tener de 1 a N numeros de telefonos... por lo tanto esto si responde a tu pregunta... es una relación de 1 a N....

Creo que tu problema puede estar en el diseño de la tabla de Telefono_del_Contato.... a lo mejor le hace falta un campo más .. (esto lo estoy suponiendo..) y eso te genera el problema de realizar el vinculo con la Tabla Contacto...

Con respecto a la Tabla de Memoria, lo que hace es permitir ingresar registros de algo en una "Tabla Virtual" o "Tabla Temporal" del lado del Cliente... una vez que termines de ingresar esto debes realizar el proceso de traspasar los datos que estan en la tabla de memoria a la Tabla correspondiente de tu Base de Datos...

Para el Caso, tu "Tabla de Memoria" debiera ser utilizada para ingresar tantos Números de Telefonos que tenga un Contacto en particular....

Bueno, estos son mis comentarios... espero haber ayudado en algo...

Salu2:p:cool:

BlueSteel
16-02-2011, 21:03:51
Creo que tu problema puede estar en el diseño de la tabla de Telefono_del_Contato.... a lo mejor le hace falta un campo más .. (esto lo estoy suponiendo..) y eso te genera el problema de realizar el vinculo con la Tabla Contacto...


Revisado el post anterior, creo que tus tablas estan bien...(yo les cambie el nombre para entenderme...)

Contacto
Con_Id PK
Con_Nombre
Con_Direccion

Telefono
Tel_Id PK
Con_Id FK
Tel_Numero

Con respecto al uso de las tablas de memoria, te puede interesar este hilo (http://www.clubdelphi.com/foros/showthread.php?t=70478)

Salu2:p:cool:

anubis
18-02-2011, 19:53:54
Correcto y gracias bluesteel por tus comentarios.

Pues sigo "trabado" con este tema. :(.
No pense que hacer una simple agenda fuera tan complicado por usar directamente los dataset pero ahi esta la gracia no? jajaja.

Vale, teniendo los datos en memoria, unos en dbedit, otros en dbgrid y otros en dbcombolookup, la manera mas facil, sobretodo con los dbgrid (1 a n) es con un bucle?.
Al final y gracias a vosotros la conseguire acabar pero tampoco quiero ser un chapuzas de que funcione pero que no sea la manera correcta de hacerlo.

Gracias de nuevo