Página 1 de 1

Problema con AddNew y Edit con MySql

Publicado: Mié Feb 09, 2011 12:41 pm
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.

Problema con AddNew y Edit con MySql

Publicado: Mié Feb 09, 2011 7:53 pm
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

Problema con AddNew y Edit con MySql

Publicado: Mié Feb 09, 2011 8:05 pm
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

Problema con AddNew y Edit con MySql

Publicado: Mié Feb 09, 2011 8:14 pm
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

Problema con AddNew y Edit con MySql

Publicado: Mié Feb 09, 2011 9:37 pm
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)Â