PDA

Ver la Versión Completa : Vista Actualizable... Como hacerla ?


Efren2006
19-07-2012, 17:22:03
Saludos

Tengo un pequeño enredo por desconocimiento, uso Firebird 2.1 con Delphi 2009, he creado vista y procedimientos etc,etc, pero en tengo un caso que necesito hacer una Vista que sea ACTUALIZABLE es decir que a la misma debo poder EDITAR el valor de uno de los campos,

Explico la estructura de las tablas y la Vista Como la necesito:

Tabla A: "TomaFisico"
CODARTICU varchar(15)
CANTIDAD numeric(18,2)

Tabla B: "Articulos"
CODARTICU varchar(15)
DESARTICU varchar(100)
UBICACION varchar(10)


Necesito una Vista de la Siguiente Manera:
CREATE VIEW POSTEO(
CODARTICU,
DESARTICU,
UBICACION,
CANTIDAD)
AS
SELECT A.CODARTICU,B.DESARTICU,B.UBICACION,A.CANTIDAD FROM TomaFisico A
LEFT JOIN Articulos B ON (A.CODARTICU=B.CODARTICU)


Y del Lado de Delphi Necesito tener un DBGRID para que el usuario poste la CANTIDAD del Conteo Físico del inventario, Ahora explico porque una Vista , porque necesito que el usuario pueda colocar el orden de los artículos según le parezca mas cómodo hacerlo (Ordenado por , Código, Descripción, Ubicación).

Pero cuando efectúa esta operación el Delphi me indica que la Vista es de SOLO LECTURA.... Existe alguna manera de hacer lo que Pretendo ?

ElDioni
19-07-2012, 18:29:43
No trabajo con firebird pero, no veo la necesidad de crear una vista para ordenar tu consulta. simplemente guarda tu consulta general en un string y el campo por el que quieras ordenar en otro, entonces montas la consulta.


consulta:=SQLGeneral+' ORDER BY '+CampoParaOrdenar;


Saludos.

Efren2006
19-07-2012, 19:04:13
No trabajo con firebird pero, no veo la necesidad de crear una vista para ordenar tu consulta. simplemente guarda tu consulta general en un string y el campo por el que quieras ordenar en otro, entonces montas la consulta.


consulta:=SQLGeneral+' ORDER BY '+CampoParaOrdenar;


Saludos.

Amigo ElDione

Gracias por su tiempo.

No el problema realmente no es la Vista, también podria hacer una consulta Select con ello,, el problema es que si hago una consulta con campos de otras tablas NO puedo EDITAR en esa consulta el Valor de un CAMPO,, ya que el delphi me indica que la consulta es de solo LECTURA.

Saludos

MartinS
19-07-2012, 22:59:06
Hola, creo que deberías usar el componente IbDataset al cual le podes dar el código de consulta, inserción, edición y eliminación. Yo también para esos casos uso un componente de JEDI que me parece que se llama memorytable que precisamente hace eso pone podes recorrer el resultado del query y pasarlo al memory.

Saludos

Casimiro Notevi
19-07-2012, 23:14:55
También puede seguir este minitutorial (http://intitec.com/varios/Delphi_conexion_firebird_con_ibx.pdf).

Efren2006
20-07-2012, 01:05:47
Amigos

Gracias a Todos por sus aportes y tiempo , creo ya haber resuelto el problema, la solución es que debo usar los Trigger de la vista para mandar ha actualizar solo los campos que voy a editar, y en del lado de Delphi en el componente TIBDataset, solo realizar las actualizaciones de los campos que voy a modificar.. Ahora estoy probando y todo va bien.

Saludos