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.

Problema con AddNew y Edit con MySql

Foro público de Xailer en español
Responder
Ariel

Problema con AddNew y Edit con MySql

Mensaje por Ariel »

Hola,
Accedo a un TSQLQuery de mysql con los siguientes parámetros
- nCursorLocation := adUseClient
- nCursorType := AdOpenDynamic
- nLockType := adLockOptimistic
Código:
METHOD FormInitialize( oSender ) CLASS TAbmGeneral
WaitOn( "Abriendo la tabla de "+::cText+", espere... " )
WITH OBJECT ::oSQLGeneral
:oDataSource:=AppData:cnn
:cSelect:= "SELECT "+::cCodigo+" AS codigo, "+::cNombre+" AS nombre
"+;
"FROM "+::cTable+" "+;
"ORDER BY nombre"
IF :lOpen
:Close()
ENDIF
IF !:lOpen
:lOpen:=.T.
IF !:lOpen
MSGSTOP("Error al Abrir Tabla de "+::cText, 'Error')
return .f.
ENDIF
ENDIF
END WITH
WaitOff()
::oBrw:SetFocus()
RETURN Nil
Al editar :
METHOD Editar( oSender ) CLASS TAbmGeneral
WITH OBJECT TEditGeneral():New(Self)
:ctext:='Modificar '+::cText
::oSQLGeneral:Edit()
:oCODIGO:lEditable:= .f.
:oCODIGO:lTabStop:= .f.
:oCODIGO:cPicture:= ::oBrw:aCols[1]:cPicture
:oCODIGO:nAlignment:= taRIGHT
:showmodal()
if :nModalResult==mrOK
::oSQLGeneral:Update()
else
::oSQLGeneral:Cancel()
endif
END
RETURN Nil
Tanto al añadir como al editar me muestra el :cselect correspondiente y dice
:
Set de sólo lectura, 'Edit' no permitido[#0]
En procedimiento: TABMGENERAL:EDITAR linea: 96
la linea 96 : ::oSQLGeneral:Edit()
y entro en la edicion, pero... no me deja modificar nada
Probé sin los alias, y tambien da error, probe ver el estado de :lOpen, y
esta en .T., y probe un msginfo( ::oSQLGeneral:nLockType ) antes del edit y
es 3, segun ado.ch seria correcto.
Alguna idea ?
Gracias.
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Problema con AddNew y Edit con MySql

Mensaje por jfgimenez »

Ariel,
para que una tabla se pueda editar en MySQL, tiene que tener una clave
primaria. Además, en el query deben estar todos los campos de la clave
primaria. Esa es la única forma de que Xailer pueda identificar y modificar
inequivocamente el registro en que está posicionado el dataset.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Ariel

Problema con AddNew y Edit con MySql

Mensaje por Ariel »

Jose,
Gracias x responder, pero fijate que todo eso lo cumple la tabla que quiero
editar, en realidad todas las tablas q vienen a este proceso tienen codigo
(con distinto nombre segun la tabla) y nombre, pero igualmente sigue
saliendo el dichoso cartel.
Salu2.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:4d52e2be$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Ariel,
>
> para que una tabla se pueda editar en MySQL, tiene que tener una clave
> primaria. Además, en el query deben estar todos los campos de la clave
> primaria. Esa es la única forma de que Xailer pueda identificar y
> modificar inequivocamente el registro en que está posicionado el dataset.
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
> http://www.xailer.info
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Problema con AddNew y Edit con MySql

Mensaje por jfgimenez »

Ariel,
> Gracias x responder, pero fijate que todo eso lo cumple la tabla que
> quiero editar, en realidad todas las tablas q vienen a este proceso tienen
> codigo (con distinto nombre segun la tabla) y nombre, pero igualmente
> sigue saliendo el dichoso cartel.
Ya, pero el código, ¿está expresamente definido como PRIMARY KEY en la
tabla? Reví­salo con QueryBrowser, SqlYog o alguna otra utilidad de
administración de la BD.
También puedes comprobarlo utilizando el comando "SHOW INDEX FROM
latablaquesea"
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Ariel

Problema con AddNew y Edit con MySql

Mensaje por Ariel »

José,
Lo que me dices lo verifiqué y está correctamente definido, te adjunto un
proyectito simple, q reproduce el error con el backup
con mysql administrador de la bd, veras que si usas asi como esta definido
el SELECT da el error, en la edicion, si sacas los alias y mandas los campos
directamente actualiza ok.
Resumiendo, el problema esta cuando usas ALIAS en los campos.
En mi corta experiencia con Xailer aprendi a editar asi, tal vez hay otra
forma mas simple que me puedas guiar.
Gracias. Salu2.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:4d52e77c$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Ariel,
>
>> Gracias x responder, pero fijate que todo eso lo cumple la tabla que
>> quiero editar, en realidad todas las tablas q vienen a este proceso
>> tienen
>> codigo (con distinto nombre segun la tabla) y nombre, pero igualmente
>> sigue saliendo el dichoso cartel.
>
> Ya, pero el código, ¿está expresamente definido como PRIMARY KEY en la
> tabla? Revísalo con QueryBrowser, SqlYog o alguna otra utilidad de
> administración de la BD.
>
> También puedes comprobarlo utilizando el comando "SHOW INDEX FROM
> latablaquesea"
>
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
> http://www.xailer.info
>


Attached files Pruebas.rar (3.5 KB)Â
Responder