Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Relaciones entre dos tablas en paradox (https://www.clubdelphi.com/foros/showthread.php?t=34267)

destrukthor 03-08-2006 09:54:03

Relaciones entre dos tablas en paradox
 
Hola nuevamente.
Mis problemas y dudas son por tratar de hacer las cosas directas sobre resultados obtenidos y sobre el mismo realizar trabajos directos.

Bueno mi problema es la relacion de dos tablas mostradas, la relacion funciona excelente la informacion mostrada de un proveedor me entrega las compras relacionadas, estas compras estan en un DBgrid, hasta ahi todo bien. El problema es cuando en ese mismo DBGrid hago la operacion de Guardar nuevos ingresos, osea al agregar otra fila q es un insert automatico e ingresar los datos todo bien, pero al colocar Post o el Cancel flashhhh, error me dice q el indice es de solo lectura (Index is Read only), será q por la relacion no se puede agregar registros a la tabla esclava donde ésta tiene el indice ocupado y lo mantine solo de lectura (el indice es secundario y no es Unique).
Bueno ese es mi nuevo problema.:confused:

Sick boy 03-08-2006 10:00:14

No entiendo el problema.

Podrías decirnos con que componentes haces la relacion maestro-detalle.
Y revisa las propiedades RequestLive de los componentes involucrados.

Indicar también que algunas consultas SQL no son actualizables.

Ahora, lo del Index is read only, no lo habia visto en mi vida.

destrukthor 03-08-2006 10:32:26

Mmmm.
 
Como lo explico en mi data modulo coloco mis dos tablas.
en el MasterSource de Compras selecciono le DataSet de Proveedores, despues en el MasterFields en la ventana q me aparece seleccion los campos del indice q me muestra de la tabla Compras y seleciono el Campo de la tabla Proveedor q es el mismo codigo para los dos y los agrego dejandome la relacion echa, esta relacion funciona ya que he ingresado en forma individual datos para verificar si la relacion tuvo efecto.
Mi problema radica cuando en el DBgrid q tiene los datos de la tabla esclava (compras), trato de agregar mas registro, mostrandome el error mencianado antes.
Recuerda q uso paradox 7 y no SQL por lo tanto no entendi lo de las propiedades RequestLive.
O definitivamente tendre que usar tablas de paso para ingresar datos y dejar de lado lo de las relaciones para mostrar e ingresar datos.:confused:

Gracias por la ayuda.


Gracias.

Lepe 03-08-2006 10:45:05

Hablas de tablas, entonces es de suponer que usas componentes TTables, así que no debería haber problemas en ese sentido.

Siempre debe tener una clave primaria ambas tablas, los índices secundarios deben ser "mantenidos" (opcion en el Database Desktop al crear el índice).

Si se cumplen esas premisas, no debe dar problemas.

Saludos

Sick boy 03-08-2006 10:46:44

Lo siento, pero no puedo ayudarte, nunca me ha sucedido algo parecido.

Hace mucho tiempo que no uso TTables, quizas alguien pueda asesorate mejor.

nemesio 03-08-2006 12:48:42

Mientras tanto, puedes probar, guardar la información en la tabla original y forzar nuevamente la consulta para que se actualice el grid.

Saludos.

destrukthor 03-08-2006 13:03:12

desechar Paradox
 
Sorry me cabrie, probe todas las formas y es inutil ya llevo varios dias tratando de ingresar datos sobre un DBgrid relacionadas y el error de Key Violacion o Index is Ready Only.
Voy a probar estudiando MySQL.
Gracias a todos por la ayuda entregada.

Probare con otros manejadores de bases de datos.

Lepe 03-08-2006 16:16:37

Por un lado lamento que no hayas encontrado la solución, por otro sin embargo, me alegro, y mucho, verás que un SGBD como MySQL o Firebird (por decir 2 gratuitos) te ofreceran muchisimo más que Paradox.

Saludos

roman 03-08-2006 16:52:24

Hombre, claro que será bueno que estudie otro gestor de bd. Pero sería imperdonable que el cambio se debiera exclusivamente a este problema. Como dice Lepe, si las tablas tienen índice primario no debe haber problema. Lo de "index is read only" normalmente se refiere a índices secundarios no mantenidos o en ausencia del primario.

// Saludos


La franja horaria es GMT +2. Ahora son las 20:52:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi