PDA

Ver la Versión Completa : Views - SQL Express - ClientDataset


lsg
06-12-2006, 21:30:04
Hola.

Tengo una aplicacion con Delphi 7.

Uso TAdoConnection, TAdo_Query + TdatasetProvider + TClientDataset.

Es decir. NestedDatasets.

Resulta que mi base de datos es (o era) SQL server 2000.

Probando Windows Vista, (ya que el mismo no soporta SQL 2000), instalé SQL Express.

Bien, la aplicacion con la base de datos funciona bien, salvo en un caso, que quiero consultarles si saben como solucionarlo.

Hay un caso especifico, donde armo una tabla virtual mediante un VIEW, ya que su estructura es cambiante. No hay manera de manejar una tabla real. Varian los campos en cantidad y tipo dependiendo el caso.

Por lo cual en runtime creo una VIEW que me arma esta tabla virtual.

Sobre ella, haciendole un select por CommandText del ClientDataset, siempre podia trabajar, es decir, trabajarla en grillas, modificar sus datos., aunque nunca haciendo ApplyUpdates. pero si Post sobre el dataset.

Ahora me encuentro en Windows Vista con que (aparentemente, esta es mi deduccion), las VIEWS en SQL Espress, serian read-only. Ya que no me permite hacer post sobre el clientdataset.

Me dice "... raised exception class EDBClient with message "Trying to modify Read-Only field."

Alguien sabe si se puede solucionar esto de alguna manera ?

Yo creo que lo que esta pasando es que el client dataset esta enviando "updates" a la view. Y con SQL 2000 no habia problema, pero con SQL Express parece que si.

Espero su ayuda.

Gracias

nachoalbano
06-12-2006, 23:12:47
Buenas, leyendo tu consulta, se me ocurre que quizas el error no lo tengas del lado de delphi, sino del motor. Fijate que las vistas tengan permisos de escritura, quizá (esto no lo se) por defecto el SQL Express no trae la opción de escrituras de datos.

Por otro lado, haciendo doble click sobre los componentes TADOClientDataSet y TADOQuery se te listan los campos que devuelve la consulta. Quizás en alguno de ellos te quedó la propiedad de readonly en true.

No se me ocurren más cosas que puedan ser. Espero que te sirva

lsg
07-12-2006, 02:24:54
Gracias por tu respuesta.

He corroborado ya lo que tu dices, y los persistent fields no estan en read only. Por eso, en la grilla puedo editar los datos, pero no puedo hacer un post, ya que alli es cuando el error aparece.


Voy a seguir investigando.

Igualmente, si alguien puede arme alguna sugerencia o solucion, lo agradezco.