Página 1 de 1

TSQLQuery:InitFrom

Publicado: Dom Nov 26, 2006 8:10 pm
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

TSQLQuery:InitFrom

Publicado: Mar Nov 28, 2006 4:21 pm
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

TSQLQuery:InitFrom

Publicado: Mar Nov 28, 2006 5:02 pm
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

TSQLQuery:InitFrom

Publicado: Mar Nov 28, 2006 8:06 pm
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,
>
--

TSQLQuery:InitFrom

Publicado: Mié Nov 29, 2006 9:48 am
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,
>>
>

TSQLQuery:InitFrom

Publicado: Mié Nov 29, 2006 2:28 pm
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,
>

TSQLQuery:InitFrom

Publicado: Mié Nov 29, 2006 2:46 pm
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

TSQLQuery:InitFrom

Publicado: Mié Nov 29, 2006 4:21 pm
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
>

TSQLQuery:InitFrom

Publicado: Mié Nov 29, 2006 4:38 pm
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
>>

TSQLQuery:InitFrom

Publicado: Mié Nov 29, 2006 4:59 pm
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
>>
--