In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

ODBCDataSet Update() Error

Foro de Xailer profesional en español
Responder
pablogarciau
Mensajes: 133
Registrado: Lun May 22, 2006 10:26 am

ODBCDataSet Update() Error

Mensaje 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
pablogarciau
Mensajes: 133
Registrado: Lun May 22, 2006 10:26 am

ODBCDataSet Update() Error

Mensaje por pablogarciau »

oops, faltaba la imagen, va
--
Avatar de Usuario
jasm
Mensajes: 447
Registrado: Mar Jul 08, 2008 8:12 pm

ODBCDataSet Update() Error

Mensaje 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
pablogarciau
Mensajes: 133
Registrado: Lun May 22, 2006 10:26 am

ODBCDataSet Update() Error

Mensaje 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é
Avatar de Usuario
jasm
Mensajes: 447
Registrado: Mar Jul 08, 2008 8:12 pm

ODBCDataSet Update() Error

Mensaje 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
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

ODBCDataSet Update() Error

Mensaje 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
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

ODBCDataSet Update() Error

Mensaje 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é
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
pablogarciau
Mensajes: 133
Registrado: Lun May 22, 2006 10:26 am

ODBCDataSet Update() Error

Mensaje 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
pablogarciau
Mensajes: 133
Registrado: Lun May 22, 2006 10:26 am

ODBCDataSet Update() Error

Mensaje 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.
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

ODBCDataSet Update() Error

Mensaje 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
pablogarciau
Mensajes: 133
Registrado: Lun May 22, 2006 10:26 am

ODBCDataSet Update() Error

Mensaje 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
pablogarciau
Mensajes: 133
Registrado: Lun May 22, 2006 10:26 am

ODBCDataSet Update() Error

Mensaje 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
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

ODBCDataSet Update() Error

Mensaje 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
pablogarciau
Mensajes: 133
Registrado: Lun May 22, 2006 10:26 am

ODBCDataSet Update() Error

Mensaje 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é
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

ODBCDataSet Update() Error

Mensaje 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
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
pablogarciau
Mensajes: 133
Registrado: Lun May 22, 2006 10:26 am

ODBCDataSet Update() Error

Mensaje 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
Responder