Página 1 de 1

ODBCDataSet Update() Error

Publicado: Jue Nov 16, 2006 3:29 am
por pablogarciau
Tengo un Formulario con un ODBCDataSet con la siguiente linea de cConnect:
"select a1.*,a2.* from articulos as a1,invstat as a2 where
a2.tienda="+Appdata:cSysTienda+" and a1.clave=a2.clave"
Se conecta correctamente y me trae los campos igual de forma correcta PERO
al hacer Update() despues de un Edit() recibo el error de la imagen en
el cual hace referencia a los campos de la tabla a2 (EXI_INI es un field
de a2 (invstat))
Alguien me podria orientar
Gracias de antemano

ODBCDataSet Update() Error

Publicado: Jue Nov 16, 2006 3:31 am
por pablogarciau
oops, faltaba la imagen, va
--

ODBCDataSet Update() Error

Publicado: Jue Nov 16, 2006 7:20 am
por jasm
Juan Pablo,
No se pueden hacer updates sobre consultas de dos tablas.
Usa dos datasets, uno para mostrar datos y otro para editar la tabla que
te interesa.
Saludos
Jose A. Suarez

ODBCDataSet Update() Error

Publicado: Jue Nov 16, 2006 9:00 am
por pablogarciau
José Alfonso Suárez Moreno escribió:
> No se pueden hacer updates sobre consultas de dos tablas.
Extraño, en todo caso tampoco deberia cargarlos como parte de la misma
tabla (Query), como dije, se despliegan bien y permite editarlos el
problema es al hacer el update.
Gracias José

ODBCDataSet Update() Error

Publicado: Jue Nov 16, 2006 9:25 am
por jasm
Juan Pablo,
Nada de extraño.
Cargarlos los carga bien por que una consulta (SELECT) es una imagen de
las tablas de la base de datos en ese determinado momento.
El tema es que cuando los traes para tratarlos como un objeto se
consideran todos los datos como una tabla única, es decir, el dataset
los toma como un conjunto de datos único y cuando haces el ::update() el
sistema no sabe que datos pertenecen a que tabla para montar el INSERT o
el UPDATE correspondiente e intentará hacerlo sobre la tabla que está
despues del FROM.
Con SQL NUNCA trabajas contra las tablas realmente.
Espero haberme explicado bien.
Saludos
Jose A. Suarez

ODBCDataSet Update() Error

Publicado: Jue Nov 16, 2006 9:29 am
por ignacio
Juan Pablo,
No deberias permitir editar ningún campo de la segunda tabla por obvias
razones.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Juan Pablo Garcia" <pablogarciau@msn.com> escribió en el mensaje
news:455bccf3$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Tengo un Formulario con un ODBCDataSet con la siguiente linea de cConnect:
> "select a1.*,a2.* from articulos as a1,invstat as a2 where
> a2.tienda="+Appdata:cSysTienda+" and a1.clave=a2.clave"
>
> Se conecta correctamente y me trae los campos igual de forma correcta PERO
> al hacer Update() despues de un Edit() recibo el error de la imagen en el
> cual hace referencia a los campos de la tabla a2 (EXI_INI es un field de
> a2 (invstat))
>
> Alguien me podria orientar
> Gracias de antemano

ODBCDataSet Update() Error

Publicado: Jue Nov 16, 2006 9:32 am
por ignacio
Juan Pablo,
Con todos mis respetos, Xailer es una herramienta para desarrolladores y no
para usuarios finales. Ofrece una gran funcionalidad y flexibilidad muy por
encima de cualquier herramienta ofimática, pero exige saber lo que se está
haciendo en cada caso. Este 'problema' lo tienes exactamente en cualquier
otra heramienta de desarrollo.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Juan Pablo Garcia" <pablogarciau@msn.com> escribió en el mensaje
news:[email=455c1abd@news.xailer.com...]455c1abd@news.xailer.com...[/email]
> José Alfonso Suárez Moreno escribió:
>
>> No se pueden hacer updates sobre consultas de dos tablas.
>
> Extraño, en todo caso tampoco deberia cargarlos como parte de la misma
> tabla (Query), como dije, se despliegan bien y permite editarlos el
> problema es al hacer el update.
>
> Gracias José

ODBCDataSet Update() Error

Publicado: Jue Nov 16, 2006 10:39 am
por pablogarciau
Muy agradecido José, tus comentarios son acertados y me traen luz a este
asunto, realmente tengo poca experiencia en cuanto a SQL y al manejo que
Xailer les da con los datasets pero poco a poco lo voy comprendiendo.
De hecho ya habia resuelto el problema con dos datasets separados y
haciendo los updates de igual forma segun mis necesidades
Saludos y nuevamente mil gracias

ODBCDataSet Update() Error

Publicado: Jue Nov 16, 2006 10:54 am
por pablogarciau
Ignacio Ortiz de Zúñiga escribió:
> Juan Pablo,
>
> Con todos mis respetos, Xailer es una herramienta para desarrolladores y no
> para usuarios finales.
Totalmente de acuerdo, soy desarrollador
Ofrece una gran funcionalidad y flexibilidad muy por
> encima de cualquier herramienta ofimática,
Tambien de acuerdo contigo, felicitaciones, gran producto el suyo.
pero exige saber lo que se está
> haciendo en cada caso.
Disculpa mi ignorancia, pero creo que preguntar es un buen camino para
salir de ella, creo que no soy el unico usuario de esta herramienta que
esta aprendiendo a usarla, en cuanto a SQL tratare de estudiar mas al
respecto.

ODBCDataSet Update() Error

Publicado: Jue Nov 16, 2006 10:54 am
por miguel
Hola:
Yo estoy utilizando SQL Server. He creado una vista en el servidor con
un select similar con inner join a tres tablas.
Desde el sample ADOData1 modifico cualquier columna de cualquier tabla y
la modifica perfectamente. No he hecho pruebas haciendo el select
directamente desde Xailer y/o con ODBC, pero con ADO parece que lo hace
bien, quizas sea necesario la existencia de claves primarias en todas
tablas.
Saludos. Miguel A. Torrellas
Juan Pablo Garcia escribió:
> Tengo un Formulario con un ODBCDataSet con la siguiente linea de cConnect:
> "select a1.*,a2.* from articulos as a1,invstat as a2 where
> a2.tienda="+Appdata:cSysTienda+" and a1.clave=a2.clave"
>
> Se conecta correctamente y me trae los campos igual de forma correcta PERO
> al hacer Update() despues de un Edit() recibo el error de la imagen en
> el cual hace referencia a los campos de la tabla a2 (EXI_INI es un field
> de a2 (invstat))
>
> Alguien me podria orientar
> Gracias de antemano

ODBCDataSet Update() Error

Publicado: Jue Nov 16, 2006 10:58 am
por pablogarciau
Ignacio Ortiz de Zúñiga escribió:
> Juan Pablo,
>
> No deberias permitir editar ningún campo de la segunda tabla por obvias
> razones.
Los controles estaban lEnabled:=.f. por lo tanto no habia edicion, aun
sin embargo el update trata de guardarlos cuando no hay modificacion.
En todo caso no puedes prejuzgar si se debe o no permitir su
modificacion puesto que ignoras la estructura de las tablas (realmente
en mi caso si necesitaria editarlas).
He resuelto la situacion utilizando dos datasets
Saludos

ODBCDataSet Update() Error

Publicado: Jue Nov 16, 2006 11:04 am
por pablogarciau
Gracias Miguel
Estoy pensando en utilizar ADO, ya que me he topado con algunos detalles
que no he podido resolver con los ODBC.
De nuevo gracias y Saludos

ODBCDataSet Update() Error

Publicado: Jue Nov 16, 2006 11:22 am
por jose.luis
Juan Pablo,
>
> Estoy pensando en utilizar ADO, ya que me he topado con algunos detalles
> que no he podido resolver con los ODBC.
>
Aún y así, piensa que detrás de Ado vas a seguir teniendo el mismo driver
odbc que estás usando ahora para MySql.
Saludos,
José Luis Capel

ODBCDataSet Update() Error

Publicado: Jue Nov 16, 2006 11:30 am
por pablogarciau
José Luis Capel escribió:
> Aún y así­, piensa que detrás de Ado vas a seguir teniendo el mismo driver
> odbc que estás usando ahora para MySql.
Muy buen punto, en fin hare pruebas para determinar que es lo que no
esta correcto, ODBCDataSet, el driver ODBC, MySQL, etc, pero segun lo
que me contesto Ignacio parece que el problema esta ubicado entre el
teclado y la silla, y por lo que veo le voy a tener que dedicar muchas HCS.
Saludos José

ODBCDataSet Update() Error

Publicado: Jue Nov 16, 2006 12:32 pm
por ignacio
Miguel,
En mi opinión es un error hacerlo, incluso aunque lo soporte ADO. Sólo
tendría sentido hacerlo en relaciones 1-1 porque sino les efectos pueden ser
desastrosos, y aún así tampoco me gusta.
Imaginate el caso de una tabla de clientes relacionada con otra de
provincias a través de un Join. ¿Permitirias al usuario que modificase la
descripción de la provincia? Si lo hace es posible que por ignorancia se
carga la provincia de cientos de clientes que están bien.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Miguel A. Torrellas" <miguel@torrellas.net> escribió en el mensaje
news:[email=455c356f@news.xailer.com...]455c356f@news.xailer.com...[/email]
> Hola:
>
> Yo estoy utilizando SQL Server. He creado una vista en el servidor con un
> select similar con inner join a tres tablas.
>
> Desde el sample ADOData1 modifico cualquier columna de cualquier tabla y
> la modifica perfectamente. No he hecho pruebas haciendo el select
> directamente desde Xailer y/o con ODBC, pero con ADO parece que lo hace
> bien, quizas sea necesario la existencia de claves primarias en todas
> tablas.
>
> Saludos. Miguel A. Torrellas
>
> Juan Pablo Garcia escribió:
>> Tengo un Formulario con un ODBCDataSet con la siguiente linea de
>> cConnect:
>> "select a1.*,a2.* from articulos as a1,invstat as a2 where
>> a2.tienda="+Appdata:cSysTienda+" and a1.clave=a2.clave"
>>
>> Se conecta correctamente y me trae los campos igual de forma correcta
>> PERO
>> al hacer Update() despues de un Edit() recibo el error de la imagen en el
>> cual hace referencia a los campos de la tabla a2 (EXI_INI es un field de
>> a2 (invstat))
>>
>> Alguien me podria orientar
>> Gracias de antemano

ODBCDataSet Update() Error

Publicado: Jue Nov 16, 2006 8:48 pm
por pablogarciau
Te repito, en mi caso si aplica, si no fuera asi, creeme que con mi muy
incipiente experiencia en la programacion de aplicaciones comerciales
(de 25 años por cierto), no lo haria así­.
De cualquier manera, siempre es un gusto recibir tus consejos
Saludos