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.

TSQLQuery:InitFrom

Foro de Xailer profesional en español
Responder
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

TSQLQuery:InitFrom

Mensaje por miguel »

Hola:
TSqlQuery1:open()
TsqlQuery2:open()
with object Tsqlquery1
:edit()
:InitFrom( TSqlQuery2 ) // este funciona
:update()
end
with object Tsqlquery1
:close()
:cSelect := "otro SELECT"
:open()
:edit()
:InitFrom( TSqlQuery2 ) //Este no funciona
:update()
end
En el código de arriba, si cambiamos la propiedad cSelect y volvemos
abrir el TDataSet no funciona el metodo InitFrom.
Si no cambiamos el cSelect aunque se cierre y se abra de nuevo
TSqlQuery1, si que funciona el método InitFrom.
Saludos. Miguel A. Torrellas
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

TSQLQuery:InitFrom

Mensaje por miguel »

¿Alguna sugerencia?
Miguel A. Torrellas escribió:
> Hola:
>
> TSqlQuery1:open()
> TsqlQuery2:open()
>
>
> with object Tsqlquery1
> :edit()
> :InitFrom( TSqlQuery2 ) // este funciona
> :update()
> end
>
> with object Tsqlquery1
> :close()
> :cSelect := "otro SELECT"
> :open()
> :edit()
> :InitFrom( TSqlQuery2 ) //Este no funciona
> :update()
> end
>
>
> En el código de arriba, si cambiamos la propiedad cSelect y volvemos
> abrir el TDataSet no funciona el metodo InitFrom.
>
> Si no cambiamos el cSelect aunque se cierre y se abra de nuevo
> TSqlQuery1, si que funciona el método InitFrom.
>
> Saludos. Miguel A. Torrellas
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

TSQLQuery:InitFrom

Mensaje por ignacio »

Miguel,
Mandenos un ejemplo autocontenido. Gracias.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Miguel A. Torrellas" <miguel@torrellas.net> escribió en el mensaje
news:456c5412$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> ¿Alguna sugerencia?
>
> Miguel A. Torrellas escribió:
>> Hola:
>>
>> TSqlQuery1:open()
>> TsqlQuery2:open()
>>
>>
>> with object Tsqlquery1
>> :edit()
>> :InitFrom( TSqlQuery2 ) // este funciona
>> :update()
>> end
>>
>> with object Tsqlquery1
>> :close()
>> :cSelect := "otro SELECT"
>> :open()
>> :edit()
>> :InitFrom( TSqlQuery2 ) //Este no funciona
>> :update()
>> end
>>
>>
>> En el código de arriba, si cambiamos la propiedad cSelect y volvemos
>> abrir el TDataSet no funciona el metodo InitFrom.
>>
>> Si no cambiamos el cSelect aunque se cierre y se abra de nuevo
>> TSqlQuery1, si que funciona el método InitFrom.
>>
>> Saludos. Miguel A. Torrellas
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

TSQLQuery:InitFrom

Mensaje por miguel »


Hola:
Adjunto proyecto basado en el ejemplo de xailer ADODATA2 con la base de
datos neptuno
En la pestaña SQLQuery, la primera vez que entras en Edit todo va
parfectamente, si cambias el select en el control que he dispuesto para
ello, ya no cambia los datos cuando entras en edit, parece set que
ejecuta cancel().
Ignacio Ortiz de Zúñiga escribió:
> Miguel,
>
> Mandenos un ejemplo autocontenido. Gracias.
>
> Un saludo,
>
--
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

TSQLQuery:InitFrom

Mensaje por ignacio »

Miguel,
Ni una sola llamada a INITFROM en tu código, por lo que entiendo que tu
problema con InitFrom ha desaparecido, y esto que me mandas es una cosa
completamente distinta.
Comrpuebo que falta una llamada al método CLOSE. Quedaría así:
METHOD DBEditBtn1BtnClick( oSender, Value ) CLASS TForm1
LOCAL cSel := "select * from proveedores where nombrecontacto like
'%<valor>%'"
with object ::oSQLQuery1
:Close()
:cSelect := StrTran( cSel, "<valor>", value )
if !:lOpen
:open()
end
end
RETURN Nil
El error que comentas de edición por segunda vez a mi no se me produce. Lo
único que he observado es que a ADO+MDB no le gusta nada la asignación de
campos en blanco, es decir, "". Incluso si editas por primera vez verás que
cuando hay algún campo en blanco se genera un error, pero que si pones
cualqueir valor en todos los campos no se produce. Este problema ya lo
tenemos arreglado. Muchas gracias.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Miguel A. Torrellas" <miguel@torrellas.net> escribió en el mensaje
news:456c88ab$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>
> Hola:
>
> Adjunto proyecto basado en el ejemplo de xailer ADODATA2 con la base de
> datos neptuno
>
> En la pestaña SQLQuery, la primera vez que entras en Edit todo va
> parfectamente, si cambias el select en el control que he dispuesto para
> ello, ya no cambia los datos cuando entras en edit, parece set que
> ejecuta cancel().
>
>
> Ignacio Ortiz de Zúñiga escribió:
>> Miguel,
>>
>> Mandenos un ejemplo autocontenido. Gracias.
>>
>> Un saludo,
>>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

TSQLQuery:InitFrom

Mensaje por miguel »

Ignacio Ortiz de Zúñiga escribió:
> Miguel,
>
> Ni una sola llamada a INITFROM en tu código, por lo que entiendo que tu
> problema con InitFrom ha desaparecido, y esto que me mandas es una cosa
> completamente distinta.
>
El problema es el mismo con edit o con initfrom.
> Comrpuebo que falta una llamada al método CLOSE. Quedarí­a así­:
Al cambiar el select cierra el dataset -ojo- solo si es distinto select.
Por eso pongo el open condicional.
>
> METHOD DBEditBtn1BtnClick( oSender, Value ) CLASS TForm1
> LOCAL cSel := "select * from proveedores where nombrecontacto like
> '%<valor>%'"
> with object ::oSQLQuery1
> :Close()
> :cSelect := StrTran( cSel, "<valor>", value )
> if !:lOpen
> :open()
> end
> end
> RETURN Nil
>
> El error que comentas de edición por segunda vez a mi no se me produce.
Por segunda vez no exactamente, despues de cambiar el select solo
cuando lo cierras y lo vuelves a abrir.
Lo
> único que he observado es que a ADO+MDB no le gusta nada la asignación de
> campos en blanco, es decir, "". Incluso si editas por primera vez verás que
> cuando hay algún campo en blanco se genera un error, pero que si pones
> cualqueir valor en todos los campos no se produce. Este problema ya lo
> tenemos arreglado. Muchas gracias.
Pues si está arreglado, puede ser que tenga algo de relación y por eso
no se te produce el error. Te ruego me envies eñ obj para comprobar.
Gracias.
>
> Un saludo,
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

TSQLQuery:InitFrom

Mensaje por ignacio »

Miguel,
> El problema es el mismo con edit o con initfrom.
Sin comentarios.
> Por eso pongo el open condicional.
Me temo que no sirve para nada.
>> if !:lOpen
>> :open()
>> end
Si no esta abierto, lo abres. Pero es que está abierto cuando le introduces
una nueva instrucción select, por lo tanto habrá que cerrar el DataSet
antes.
> Pues si está arreglado, puede ser que tenga algo de relación y por eso no
> se te produce el error. Te ruego me envies eñ obj para comprobar.
Publicaremos una revisión de la 1.2 esta misma semana.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

TSQLQuery:InitFrom

Mensaje por miguel »

Ignacio Ortiz de Zúñiga escribió:
> Miguel,
>
>> El problema es el mismo con edit o con initfrom.
>
> Sin comentarios.
>
>> Por eso pongo el open condicional.
>
> Me temo que no sirve para nada.
>
>>> if !:lOpen
>>> :open()
>>> end
>
> Si no esta abierto, lo abres. Pero es que está abierto cuando le introduces
> una nueva instrucción select, por lo tanto habrá que cerrar el DataSet
> antes.
>
Si esa es la primera lógica que yo entendí­, pero usando debug me di
cuente que si cambias :cSelect estando abierto, lo cierra, es por eso
que no lo cierro.
No obstante te vuelvo a enviar el ejemplo, corregido de esta manera, te
ruego que hagas varios select's y después editas, a mi al menos cuando
pulso update, no guarda las modificaciones, da la impresión que cancela
la edición. Yo siento insistir, pero asi es como veo que funciona y me
pregunto si este es el comportamiento previsto y de serlo, ¿como
cambiamos cSelect y editamos los datos?. Seguramente yo seré el
equivocado pero creo que este es el sitio para exponer nuestras dudas.
>> Pues si está arreglado, puede ser que tenga algo de relación y por eso no
>> se te produce el error. Te ruego me envies eñ obj para comprobar.
>
> Publicaremos una revisión de la 1.2 esta misma semana.
>
> Un saludo
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9457
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

TSQLQuery:InitFrom

Mensaje por ignacio »

Miguel,
No, no estás equivocado, pero agredecmos muy mucho que se entregen ejemplos
claros, pequeños y que claramente muestren el error. Es decir, agradecemos
un pequeño esfuerzo por parte del propio usuario.
Es tu tercer ejemplo al respecto, y sino te importa prefiero esperar a que
recibas la próxima versión. Yo por mi parte haré mis propias pruebas creando
yo mi propio ejemplo para ver si hay algo de verdad que este fallando, que
seguro que así es.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Miguel A. Torrellas" <miguel@torrellas.net> escribió en el mensaje
news:456da586$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
>
>
> Ignacio Ortiz de Zúñiga escribió:
>> Miguel,
>>
>>> El problema es el mismo con edit o con initfrom.
>>
>> Sin comentarios.
>>
>>> Por eso pongo el open condicional.
>>
>> Me temo que no sirve para nada.
>>
>>>> if !:lOpen
>>>> :open()
>>>> end
>>
>> Si no esta abierto, lo abres. Pero es que está abierto cuando le
>> introduces una nueva instrucción select, por lo tanto habrá que cerrar el
>> DataSet antes.
>>
> Si esa es la primera lógica que yo entendí, pero usando debug me di cuente
> que si cambias :cSelect estando abierto, lo cierra, es por eso que no lo
> cierro.
>
> No obstante te vuelvo a enviar el ejemplo, corregido de esta manera, te
> ruego que hagas varios select's y después editas, a mi al menos cuando
> pulso update, no guarda las modificaciones, da la impresión que cancela la
> edición. Yo siento insistir, pero asi es como veo que funciona y me
> pregunto si este es el comportamiento previsto y de serlo, ¿como cambiamos
> cSelect y editamos los datos?. Seguramente yo seré el equivocado pero creo
> que este es el sitio para exponer nuestras dudas.
>
>>> Pues si está arreglado, puede ser que tenga algo de relación y por eso
>>> no se te produce el error. Te ruego me envies eñ obj para comprobar.
>>
>> Publicaremos una revisión de la 1.2 esta misma semana.
>>
>> Un saludo
>>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

TSQLQuery:InitFrom

Mensaje por miguel »

Perdon me he dejado el proyecto
Miguel A. Torrellas escribió:
>
>
> Ignacio Ortiz de Zúñiga escribió:
>> Miguel,
>>
>>> El problema es el mismo con edit o con initfrom.
>>
>> Sin comentarios.
>>
>>> Por eso pongo el open condicional.
>>
>> Me temo que no sirve para nada.
>>
>>>> if !:lOpen
>>>> :open()
>>>> end
>>
>> Si no esta abierto, lo abres. Pero es que está abierto cuando le
>> introduces una nueva instrucción select, por lo tanto habrá que cerrar
>> el DataSet antes.
>>
> Si esa es la primera lógica que yo entendí­, pero usando debug me di
> cuente que si cambias :cSelect estando abierto, lo cierra, es por eso
> que no lo cierro.
>
> No obstante te vuelvo a enviar el ejemplo, corregido de esta manera, te
> ruego que hagas varios select's y después editas, a mi al menos cuando
> pulso update, no guarda las modificaciones, da la impresión que cancela
> la edición. Yo siento insistir, pero asi es como veo que funciona y me
> pregunto si este es el comportamiento previsto y de serlo, ¿como
> cambiamos cSelect y editamos los datos?. Seguramente yo seré el
> equivocado pero creo que este es el sitio para exponer nuestras dudas.
>
>>> Pues si está arreglado, puede ser que tenga algo de relación y por
>>> eso no se te produce el error. Te ruego me envies eñ obj para comprobar.
>>
>> Publicaremos una revisión de la 1.2 esta misma semana.
>>
>> Un saludo
>>
--
Responder