Página 1 de 1

Error cuando Cancelo Adicion de Nuevo Registro Usando ADO en Oracle

Publicado: Vie Mar 30, 2007 6:12 am
por Fernando Hernandez
Buenas Noches
Estoy usando como base de datos Oracle Express para una aplicacion de
sincronizacion de data entre un ERP en visual Fox y un sistema en equipos
pocket PC.
Luego del cambio a la version 1.3b y de cambiar la version del IDE por los
problemas del tamaño de las ventanas, ahora me esta dando el siguiente error
:
***************************** Registro de errores
*****************************
Fecha: 03/29/07
Hora: 22:01:36
Memoria libre: 45708
Area actual: 1
------------------------- Información del
compilador --------------------------
Versión Xailer: Xailer 1.3.2 Version 1.3b
Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
Compilador C/C++: Borland C++ 5.5.1
Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
----------------------- Información detallada del
error -----------------------
Subsistema: ADODB.RecordSet
Código de error: 16389
Estado: .F.
Descripción: E_FAIL
Operación: CANCELUPDATE
Argumentos:
Fichero:
Código error SO: 0
Pila de llamadas:
TOLEAUTO:CANCELUPDATE (0)
(b)XADORECORDS:XADORECORDS (51)
TADORECORDS:CANCEL (0)
TSQLTABLE:CANCEL (514)
TFRMRUTA:MANTENALTA (98)
TMAIN:MANTENALTA (151)
TOPTIONITEM:ONCLICK (0)
TOPTIONITEM:CLICK (273)
TOPTIONLIST:WMLBUTTONDOWN (0)
RUNFORM (0)
TAPPLICATION:RUN (208)
MAIN (15)
**********************************************************
En las versiones anteriores 1.1 a 1.2 el procedimiento me funciono bien
(Luego que me sugirio que creara un Dataset vacio para la adicion de un
nuevo registro). Esto me pasa luego de que cancelo un intento de agregar un
nuevo registro. Adjunto incluyo parte del procedimiento.
**********************************************************
METHOD MantenAlta( oSender ) CLASS TFrmRuta
// Local clFIlter := ::odbBrowse1:lFilterBar
Local clBusca
::odbbrowse1:savestate(.t.)
IF ::odbBrowse1:lFilterBar
::odbBrowse1:lFilterBar := .f.
Endif
WITH OBJECT ::oSQLTable2 := TSQLTable():New( Self )
:oDataSource := ::oAdoDataSource1
:cProcess := "GENERAL"
:nCursorType := adOpenDynamic
:nLockType := adLockOptimistic
:cTableName := "PDA_RUTAS WHERE RUTA=' '"
:Create()
END
::oSqltable2:lOpen:=.T.
WITH OBJECT TFRMRUTAS()
:lOnAppend := .t.
:New( Application:oMainForm )
::osqltable2:addnew()
:cText := "Agregar Rutas"
:RequestState()
IF :ShowModal() == mrOK
::osqltable2:Update()
clBusca := ::osqltable2:Ruta
::osqlTable1:Refresh()
::osqlTable1:locate("Ruta='"+clBusca+"'" )
::Odbbrowse1:refresh()
::asignarico()
ELSE
::osqltable2:Cancel()
ENDIF
END WITH
::osqltable2:destroy()
::odbbrowse1:restorestate(.t.)
RETURN NIL
**********************************************************
Agradecere su ayuda para la solucion de este problemilla ya que es la misma
rutina que uso para la actualizacion de todas las tablas en mi aplicacion.
Saludos
Fernando Hernandez

Error cuando Cancelo Adicion de Nuevo Registro Usando ADO en Oracle

Publicado: Vie Mar 30, 2007 6:16 am
por Fernando Hernandez
Solo agregando, ya tambien probe con los modulos actualizados que se han
colocado en el foro luego de la liberacion de la version 1.3b.
Bueno espero por su ayuda.
SAludos
"Fernando Hernandez" <dbfer@dilico.com.sv> escribió en el mensaje
news:[email=460c8d0b@ozsrv2.ozlan.local...]460c8d0b@ozsrv2.ozlan.local...[/email]
> Buenas Noches
>
> Estoy usando como base de datos Oracle Express para una aplicacion de
> sincronizacion de data entre un ERP en visual Fox y un sistema en equipos
> pocket PC.
>
> Luego del cambio a la version 1.3b y de cambiar la version del IDE por los
> problemas del tamaño de las ventanas, ahora me esta dando el siguiente
> error :
>
> ***************************** Registro de errores
> *****************************
>
> Fecha: 03/29/07
> Hora: 22:01:36
> Memoria libre: 45708
> Area actual: 1
>
> ------------------------- Información del
> compilador --------------------------
>
> Versión Xailer: Xailer 1.3.2 Version 1.3b
> Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
> Compilador C/C++: Borland C++ 5.5.1
> Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
>
> ----------------------- Información detallada del
> error -----------------------
>
> Subsistema: ADODB.RecordSet
> Código de error: 16389
> Estado: .F.
> Descripción: E_FAIL
> Operación: CANCELUPDATE
> Argumentos:
> Fichero:
> Código error SO: 0
>
> Pila de llamadas:
> TOLEAUTO:CANCELUPDATE (0)
> (b)XADORECORDS:XADORECORDS (51)
> TADORECORDS:CANCEL (0)
> TSQLTABLE:CANCEL (514)
> TFRMRUTA:MANTENALTA (98)
> TMAIN:MANTENALTA (151)
> TOPTIONITEM:ONCLICK (0)
> TOPTIONITEM:CLICK (273)
> TOPTIONLIST:WMLBUTTONDOWN (0)
> RUNFORM (0)
> TAPPLICATION:RUN (208)
> MAIN (15)
>
> **********************************************************
> En las versiones anteriores 1.1 a 1.2 el procedimiento me funciono bien
> (Luego que me sugirio que creara un Dataset vacio para la adicion de un
> nuevo registro). Esto me pasa luego de que cancelo un intento de agregar
> un nuevo registro. Adjunto incluyo parte del procedimiento.
> **********************************************************
> METHOD MantenAlta( oSender ) CLASS TFrmRuta
> // Local clFIlter := ::odbBrowse1:lFilterBar
> Local clBusca
> ::odbbrowse1:savestate(.t.)
>
> IF ::odbBrowse1:lFilterBar
> ::odbBrowse1:lFilterBar := .f.
> Endif
>
> WITH OBJECT ::oSQLTable2 := TSQLTable():New( Self )
> :oDataSource := ::oAdoDataSource1
> :cProcess := "GENERAL"
> :nCursorType := adOpenDynamic
> :nLockType := adLockOptimistic
> :cTableName := "PDA_RUTAS WHERE RUTA=' '"
> :Create()
> END
>
> ::oSqltable2:lOpen:=.T.
>
> WITH OBJECT TFRMRUTAS()
> :lOnAppend := .t.
> :New( Application:oMainForm )
> ::osqltable2:addnew()
> :cText := "Agregar Rutas"
>
> :RequestState()
> IF :ShowModal() == mrOK
> ::osqltable2:Update()
> clBusca := ::osqltable2:Ruta
> ::osqlTable1:Refresh()
> ::osqlTable1:locate("Ruta='"+clBusca+"'" )
> ::Odbbrowse1:refresh()
> ::asignarico()
> ELSE
> ::osqltable2:Cancel()
> ENDIF
> END WITH
>
> ::osqltable2:destroy()
> ::odbbrowse1:restorestate(.t.)
>
> RETURN NIL
>
> **********************************************************
>
> Agradecere su ayuda para la solucion de este problemilla ya que es la
> misma rutina que uso para la actualizacion de todas las tablas en mi
> aplicacion.
>
> Saludos
>
> Fernando Hernandez
>
>

Error cuando Cancelo Adicion de Nuevo Registro Usando ADO en Oracle

Publicado: Vie Mar 30, 2007 10:15 am
por ignacio
Fernando,
Podría probar con el módulo que le adjunto. Perdone por las molestias.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Fernando Hernandez" <dbfer@dilico.com.sv> escribió en el mensaje
news:[email=460c8d0b@ozsrv2.ozlan.local...]460c8d0b@ozsrv2.ozlan.local...[/email]
> Buenas Noches
>
> Estoy usando como base de datos Oracle Express para una aplicacion de
> sincronizacion de data entre un ERP en visual Fox y un sistema en equipos
> pocket PC.
>
> Luego del cambio a la version 1.3b y de cambiar la version del IDE por los
> problemas del tamaño de las ventanas, ahora me esta dando el siguiente
> error
> :
>
> ***************************** Registro de errores
> *****************************
>
> Fecha: 03/29/07
> Hora: 22:01:36
> Memoria libre: 45708
> Area actual: 1
>
> ------------------------- Información del
> compilador --------------------------
>
> Versión Xailer: Xailer 1.3.2 Version 1.3b
> Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
> Compilador C/C++: Borland C++ 5.5.1
> Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
>
> ----------------------- Información detallada del
> error -----------------------
>
> Subsistema: ADODB.RecordSet
> Código de error: 16389
> Estado: .F.
> Descripción: E_FAIL
> Operación: CANCELUPDATE
> Argumentos:
> Fichero:
> Código error SO: 0
>
> Pila de llamadas:
> TOLEAUTO:CANCELUPDATE (0)
> (b)XADORECORDS:XADORECORDS (51)
> TADORECORDS:CANCEL (0)
> TSQLTABLE:CANCEL (514)
> TFRMRUTA:MANTENALTA (98)
> TMAIN:MANTENALTA (151)
> TOPTIONITEM:ONCLICK (0)
> TOPTIONITEM:CLICK (273)
> TOPTIONLIST:WMLBUTTONDOWN (0)
> RUNFORM (0)
> TAPPLICATION:RUN (208)
> MAIN (15)
>
> **********************************************************
> En las versiones anteriores 1.1 a 1.2 el procedimiento me funciono bien
> (Luego que me sugirio que creara un Dataset vacio para la adicion de un
> nuevo registro). Esto me pasa luego de que cancelo un intento de agregar
> un
> nuevo registro. Adjunto incluyo parte del procedimiento.
> **********************************************************
> METHOD MantenAlta( oSender ) CLASS TFrmRuta
> // Local clFIlter := ::odbBrowse1:lFilterBar
> Local clBusca
> ::odbbrowse1:savestate(.t.)
>
> IF ::odbBrowse1:lFilterBar
> ::odbBrowse1:lFilterBar := .f.
> Endif
>
> WITH OBJECT ::oSQLTable2 := TSQLTable():New( Self )
> :oDataSource := ::oAdoDataSource1
> :cProcess := "GENERAL"
> :nCursorType := adOpenDynamic
> :nLockType := adLockOptimistic
> :cTableName := "PDA_RUTAS WHERE RUTA=' '"
> :Create()
> END
>
> ::oSqltable2:lOpen:=.T.
>
> WITH OBJECT TFRMRUTAS()
> :lOnAppend := .t.
> :New( Application:oMainForm )
> ::osqltable2:addnew()
> :cText := "Agregar Rutas"
>
> :RequestState()
> IF :ShowModal() == mrOK
> ::osqltable2:Update()
> clBusca := ::osqltable2:Ruta
> ::osqlTable1:Refresh()
> ::osqlTable1:locate("Ruta='"+clBusca+"'" )
> ::Odbbrowse1:refresh()
> ::asignarico()
> ELSE
> ::osqltable2:Cancel()
> ENDIF
> END WITH
>
> ::osqltable2:destroy()
> ::odbbrowse1:restorestate(.t.)
>
> RETURN NIL
>
> **********************************************************
>
> Agradecere su ayuda para la solucion de este problemilla ya que es la
> misma
> rutina que uso para la actualizacion de todas las tablas en mi aplicacion.
>
> Saludos
>
> Fernando Hernandez
>
>


Attached files AdoRecords.rar (5.7 KB)Â

Error cuando Cancelo Adicion de Nuevo Registro Usando ADO en Oracle

Publicado: Vie Mar 30, 2007 4:33 pm
por Fernando Hernandez
Ahora el error que me da es el del archivo adjunto, antes funcionaba sin
ningun problema el mismo codigo.
Saludos
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:460cc733$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Fernando,
>
> Podría probar con el módulo que le adjunto. Perdone por las molestias.
>
> Un saludo
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "Fernando Hernandez" <dbfer@dilico.com.sv> escribió en el mensaje
> news:[email=460c8d0b@ozsrv2.ozlan.local...]460c8d0b@ozsrv2.ozlan.local...[/email]
>> Buenas Noches
>>
>> Estoy usando como base de datos Oracle Express para una aplicacion de
>> sincronizacion de data entre un ERP en visual Fox y un sistema en equipos
>> pocket PC.
>>
>> Luego del cambio a la version 1.3b y de cambiar la version del IDE por
>> los
>> problemas del tamaño de las ventanas, ahora me esta dando el siguiente
>> error
>> :
>>
>> ***************************** Registro de errores
>> *****************************
>>
>> Fecha: 03/29/07
>> Hora: 22:01:36
>> Memoria libre: 45708
>> Area actual: 1
>>
>> ------------------------- Información del
>> compilador --------------------------
>>
>> Versión Xailer: Xailer 1.3.2 Version 1.3b
>> Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
>> Compilador C/C++: Borland C++ 5.5.1
>> Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
>>
>> ----------------------- Información detallada del
>> error -----------------------
>>
>> Subsistema: ADODB.RecordSet
>> Código de error: 16389
>> Estado: .F.
>> Descripción: E_FAIL
>> Operación: CANCELUPDATE
>> Argumentos:
>> Fichero:
>> Código error SO: 0
>>
>> Pila de llamadas:
>> TOLEAUTO:CANCELUPDATE (0)
>> (b)XADORECORDS:XADORECORDS (51)
>> TADORECORDS:CANCEL (0)
>> TSQLTABLE:CANCEL (514)
>> TFRMRUTA:MANTENALTA (98)
>> TMAIN:MANTENALTA (151)
>> TOPTIONITEM:ONCLICK (0)
>> TOPTIONITEM:CLICK (273)
>> TOPTIONLIST:WMLBUTTONDOWN (0)
>> RUNFORM (0)
>> TAPPLICATION:RUN (208)
>> MAIN (15)
>>
>> **********************************************************
>> En las versiones anteriores 1.1 a 1.2 el procedimiento me funciono bien
>> (Luego que me sugirio que creara un Dataset vacio para la adicion de un
>> nuevo registro). Esto me pasa luego de que cancelo un intento de agregar
>> un
>> nuevo registro. Adjunto incluyo parte del procedimiento.
>> **********************************************************
>> METHOD MantenAlta( oSender ) CLASS TFrmRuta
>> // Local clFIlter := ::odbBrowse1:lFilterBar
>> Local clBusca
>> ::odbbrowse1:savestate(.t.)
>>
>> IF ::odbBrowse1:lFilterBar
>> ::odbBrowse1:lFilterBar := .f.
>> Endif
>>
>> WITH OBJECT ::oSQLTable2 := TSQLTable():New( Self )
>> :oDataSource := ::oAdoDataSource1
>> :cProcess := "GENERAL"
>> :nCursorType := adOpenDynamic
>> :nLockType := adLockOptimistic
>> :cTableName := "PDA_RUTAS WHERE RUTA=' '"
>> :Create()
>> END
>>
>> ::oSqltable2:lOpen:=.T.
>>
>> WITH OBJECT TFRMRUTAS()
>> :lOnAppend := .t.
>> :New( Application:oMainForm )
>> ::osqltable2:addnew()
>> :cText := "Agregar Rutas"
>>
>> :RequestState()
>> IF :ShowModal() == mrOK
>> ::osqltable2:Update()
>> clBusca := ::osqltable2:Ruta
>> ::osqlTable1:Refresh()
>> ::osqlTable1:locate("Ruta='"+clBusca+"'" )
>> ::Odbbrowse1:refresh()
>> ::asignarico()
>> ELSE
>> ::osqltable2:Cancel()
>> ENDIF
>> END WITH
>>
>> ::osqltable2:destroy()
>> ::odbbrowse1:restorestate(.t.)
>>
>> RETURN NIL
>>
>> **********************************************************
>>
>> Agradecere su ayuda para la solucion de este problemilla ya que es la
>> misma
>> rutina que uso para la actualizacion de todas las tablas en mi
>> aplicacion.
>>
>> Saludos
>>
>> Fernando Hernandez
>>
>>
>
>
>


Attached files

Error cuando Cancelo Adicion de Nuevo Registro Usando ADO en Oracle

Publicado: Vie Mar 30, 2007 5:20 pm
por ignacio
Fernando,
No consigo reproducir tu problema, lo siento. En el ejemplo
DatacontrolsAdoData2, he puesto un botón en el primer TAB con el siguiente
código en su evento OnClick:
METHOD Button9Click( oSender ) CLASS TForm1
WITH OBJECT ::oSqlTable1
:AddNew()
:Cancel()
:Edit()
:Cancel()
END WITH
RETURN Nil
Y no se produce ningún error. Te importaría hacer lo mismo o intentar
provocar un error con este ejemplo. Gracias
No quisiera sacar la actualización ligera a la 1.3c hasta que este resuelto
este problema.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Fernando Hernandez" <dbfer@dilico.com.sv> escribió en el mensaje
news:[email=460d1eb0@ozsrv2.ozlan.local...]460d1eb0@ozsrv2.ozlan.local...[/email]
> Ahora el error que me da es el del archivo adjunto, antes funcionaba sin
> ningun problema el mismo codigo.
>
> Saludos
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:460cc733$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Fernando,
>>
>> Podría probar con el módulo que le adjunto. Perdone por las molestias.
>>
>> Un saludo
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> http://www.xailer.com
>>
>>
>> "Fernando Hernandez" <dbfer@dilico.com.sv> escribió en el mensaje
>> news:[email=460c8d0b@ozsrv2.ozlan.local...]460c8d0b@ozsrv2.ozlan.local...[/email]
>>> Buenas Noches
>>>
>>> Estoy usando como base de datos Oracle Express para una aplicacion de
>>> sincronizacion de data entre un ERP en visual Fox y un sistema en
>>> equipos
>>> pocket PC.
>>>
>>> Luego del cambio a la version 1.3b y de cambiar la version del IDE por
>>> los
>>> problemas del tamaño de las ventanas, ahora me esta dando el siguiente
>>> error
>>> :
>>>
>>> ***************************** Registro de errores
>>> *****************************
>>>
>>> Fecha: 03/29/07
>>> Hora: 22:01:36
>>> Memoria libre: 45708
>>> Area actual: 1
>>>
>>> ------------------------- Información del
>>> compilador --------------------------
>>>
>>> Versión Xailer: Xailer 1.3.2 Version 1.3b
>>> Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
>>> Compilador C/C++: Borland C++ 5.5.1
>>> Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
>>>
>>> ----------------------- Información detallada del
>>> error -----------------------
>>>
>>> Subsistema: ADODB.RecordSet
>>> Código de error: 16389
>>> Estado: .F.
>>> Descripción: E_FAIL
>>> Operación: CANCELUPDATE
>>> Argumentos:
>>> Fichero:
>>> Código error SO: 0
>>>
>>> Pila de llamadas:
>>> TOLEAUTO:CANCELUPDATE (0)
>>> (b)XADORECORDS:XADORECORDS (51)
>>> TADORECORDS:CANCEL (0)
>>> TSQLTABLE:CANCEL (514)
>>> TFRMRUTA:MANTENALTA (98)
>>> TMAIN:MANTENALTA (151)
>>> TOPTIONITEM:ONCLICK (0)
>>> TOPTIONITEM:CLICK (273)
>>> TOPTIONLIST:WMLBUTTONDOWN (0)
>>> RUNFORM (0)
>>> TAPPLICATION:RUN (208)
>>> MAIN (15)
>>>
>>> **********************************************************
>>> En las versiones anteriores 1.1 a 1.2 el procedimiento me funciono bien
>>> (Luego que me sugirio que creara un Dataset vacio para la adicion de un
>>> nuevo registro). Esto me pasa luego de que cancelo un intento de agregar
>>> un
>>> nuevo registro. Adjunto incluyo parte del procedimiento.
>>> **********************************************************
>>> METHOD MantenAlta( oSender ) CLASS TFrmRuta
>>> // Local clFIlter := ::odbBrowse1:lFilterBar
>>> Local clBusca
>>> ::odbbrowse1:savestate(.t.)
>>>
>>> IF ::odbBrowse1:lFilterBar
>>> ::odbBrowse1:lFilterBar := .f.
>>> Endif
>>>
>>> WITH OBJECT ::oSQLTable2 := TSQLTable():New( Self )
>>> :oDataSource := ::oAdoDataSource1
>>> :cProcess := "GENERAL"
>>> :nCursorType := adOpenDynamic
>>> :nLockType := adLockOptimistic
>>> :cTableName := "PDA_RUTAS WHERE RUTA=' '"
>>> :Create()
>>> END
>>>
>>> ::oSqltable2:lOpen:=.T.
>>>
>>> WITH OBJECT TFRMRUTAS()
>>> :lOnAppend := .t.
>>> :New( Application:oMainForm )
>>> ::osqltable2:addnew()
>>> :cText := "Agregar Rutas"
>>>
>>> :RequestState()
>>> IF :ShowModal() == mrOK
>>> ::osqltable2:Update()
>>> clBusca := ::osqltable2:Ruta
>>> ::osqlTable1:Refresh()
>>> ::osqlTable1:locate("Ruta='"+clBusca+"'" )
>>> ::Odbbrowse1:refresh()
>>> ::asignarico()
>>> ELSE
>>> ::osqltable2:Cancel()
>>> ENDIF
>>> END WITH
>>>
>>> ::osqltable2:destroy()
>>> ::odbbrowse1:restorestate(.t.)
>>>
>>> RETURN NIL
>>>
>>> **********************************************************
>>>
>>> Agradecere su ayuda para la solucion de este problemilla ya que es la
>>> misma
>>> rutina que uso para la actualizacion de todas las tablas en mi
>>> aplicacion.
>>>
>>> Saludos
>>>
>>> Fernando Hernandez
>>>
>>>
>>
>>
>>
>
>
>

Error cuando Cancelo Adicion de Nuevo Registro Usando ADO en Oracle

Publicado: Vie Mar 30, 2007 5:53 pm
por Fernando Hernandez
Ahora si funciona con algunos cambios.
Ok, solo para hacer un poquito de historia. No se si se recuerda que cuando
creaba un nuevo registro en el dataset, este automaticamente quedaba vacio,
por lo que me recomendo en esa oportunidad fue crear un 2do dataset vacio y
sobre ese agregar el nuevo registro.
Ahora bien, el cambio que he hecho es unicamente dejar el primer dataset, ya
no tengo necesidad de crear el 2do para agregar un nuevo registro. Me
imagino que en esta nueva version se solucionó el problema que tenia al
inicio y que como via alterna creaba el 2do databaset.
Espero me explique. Pero en conclusion quedaria solucionado, si encuentro
algo mas le comento. Adjunto el procedimiento cambiado.
Solo agregando algo mas, si fué necesario instalar el modulo que me envio
este día; si no, no funcionaria.
Saludos
**********************************************************
METHOD MantenAlta( oSender ) CLASS TFrmRuta
Local clBusca
::odbbrowse1:savestate(.t.)
IF ::odbBrowse1:lFilterBar
::odbBrowse1:lFilterBar := .f.
Endif
WITH OBJECT TFRMRUTAS()
:lOnAppend := .f.
:New( Application:oMainForm )
::osqltable1:addnew()
:cText := "Agregar Rutas"
:RequestState()
IF :ShowModal() == mrOK
::osqltable1:Update()
clBusca := ::osqltable1:Ruta
::osqlTable1:Refresh()
::osqlTable1:locate("Ruta='"+clBusca+"'" )
::Odbbrowse1:refresh()
::asignarico()
ELSE
::osqltable1:Cancel()
ENDIF
END WITH
::odbbrowse1:restorestate(.t.)
RETURN NIL
**********************************************************
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:460d2ab4$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Fernando,
>
> No consigo reproducir tu problema, lo siento. En el ejemplo
> DatacontrolsAdoData2, he puesto un botón en el primer TAB con el
> siguiente código en su evento OnClick:
>
> METHOD Button9Click( oSender ) CLASS TForm1
>
> WITH OBJECT ::oSqlTable1
> :AddNew()
> :Cancel()
> :Edit()
> :Cancel()
> END WITH
>
> RETURN Nil
>
> Y no se produce ningún error. Te importaría hacer lo mismo o intentar
> provocar un error con este ejemplo. Gracias
>
> No quisiera sacar la actualización ligera a la 1.3c hasta que este
> resuelto este problema.
>
> Un saludo
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "Fernando Hernandez" <dbfer@dilico.com.sv> escribió en el mensaje
> news:[email=460d1eb0@ozsrv2.ozlan.local...]460d1eb0@ozsrv2.ozlan.local...[/email]
>> Ahora el error que me da es el del archivo adjunto, antes funcionaba sin
>> ningun problema el mismo codigo.
>>
>> Saludos
>>
>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>> news:460cc733$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>>> Fernando,
>>>
>>> Podría probar con el módulo que le adjunto. Perdone por las molestias.
>>>
>>> Un saludo
>>>
>>> --
>>> Ignacio Ortiz de Zúñiga
>>> http://www.xailer.com
>>>
>>>
>>> "Fernando Hernandez" <dbfer@dilico.com.sv> escribió en el mensaje
>>> news:[email=460c8d0b@ozsrv2.ozlan.local...]460c8d0b@ozsrv2.ozlan.local...[/email]
>>>> Buenas Noches
>>>>
>>>> Estoy usando como base de datos Oracle Express para una aplicacion de
>>>> sincronizacion de data entre un ERP en visual Fox y un sistema en
>>>> equipos
>>>> pocket PC.
>>>>
>>>> Luego del cambio a la version 1.3b y de cambiar la version del IDE por
>>>> los
>>>> problemas del tamaño de las ventanas, ahora me esta dando el siguiente
>>>> error
>>>> :
>>>>
>>>> ***************************** Registro de errores
>>>> *****************************
>>>>
>>>> Fecha: 03/29/07
>>>> Hora: 22:01:36
>>>> Memoria libre: 45708
>>>> Area actual: 1
>>>>
>>>> ------------------------- Información del
>>>> compilador --------------------------
>>>>
>>>> Versión Xailer: Xailer 1.3.2 Version 1.3b
>>>> Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version:
>>>> 7
>>>> Compilador C/C++: Borland C++ 5.5.1
>>>> Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
>>>>
>>>> ----------------------- Información detallada del
>>>> error -----------------------
>>>>
>>>> Subsistema: ADODB.RecordSet
>>>> Código de error: 16389
>>>> Estado: .F.
>>>> Descripción: E_FAIL
>>>> Operación: CANCELUPDATE
>>>> Argumentos:
>>>> Fichero:
>>>> Código error SO: 0
>>>>
>>>> Pila de llamadas:
>>>> TOLEAUTO:CANCELUPDATE (0)
>>>> (b)XADORECORDS:XADORECORDS (51)
>>>> TADORECORDS:CANCEL (0)
>>>> TSQLTABLE:CANCEL (514)
>>>> TFRMRUTA:MANTENALTA (98)
>>>> TMAIN:MANTENALTA (151)
>>>> TOPTIONITEM:ONCLICK (0)
>>>> TOPTIONITEM:CLICK (273)
>>>> TOPTIONLIST:WMLBUTTONDOWN (0)
>>>> RUNFORM (0)
>>>> TAPPLICATION:RUN (208)
>>>> MAIN (15)
>>>>
>>>> **********************************************************
>>>> En las versiones anteriores 1.1 a 1.2 el procedimiento me funciono bien
>>>> (Luego que me sugirio que creara un Dataset vacio para la adicion de un
>>>> nuevo registro). Esto me pasa luego de que cancelo un intento de
>>>> agregar
>>>> un
>>>> nuevo registro. Adjunto incluyo parte del procedimiento.
>>>> **********************************************************
>>>> METHOD MantenAlta( oSender ) CLASS TFrmRuta
>>>> // Local clFIlter := ::odbBrowse1:lFilterBar
>>>> Local clBusca
>>>> ::odbbrowse1:savestate(.t.)
>>>>
>>>> IF ::odbBrowse1:lFilterBar
>>>> ::odbBrowse1:lFilterBar := .f.
>>>> Endif
>>>>
>>>> WITH OBJECT ::oSQLTable2 := TSQLTable():New( Self )
>>>> :oDataSource := ::oAdoDataSource1
>>>> :cProcess := "GENERAL"
>>>> :nCursorType := adOpenDynamic
>>>> :nLockType := adLockOptimistic
>>>> :cTableName := "PDA_RUTAS WHERE RUTA=' '"
>>>> :Create()
>>>> END
>>>>
>>>> ::oSqltable2:lOpen:=.T.
>>>>
>>>> WITH OBJECT TFRMRUTAS()
>>>> :lOnAppend := .t.
>>>> :New( Application:oMainForm )
>>>> ::osqltable2:addnew()
>>>> :cText := "Agregar Rutas"
>>>>
>>>> :RequestState()
>>>> IF :ShowModal() == mrOK
>>>> ::osqltable2:Update()
>>>> clBusca := ::osqltable2:Ruta
>>>> ::osqlTable1:Refresh()
>>>> ::osqlTable1:locate("Ruta='"+clBusca+"'" )
>>>> ::Odbbrowse1:refresh()
>>>> ::asignarico()
>>>> ELSE
>>>> ::osqltable2:Cancel()
>>>> ENDIF
>>>> END WITH
>>>>
>>>> ::osqltable2:destroy()
>>>> ::odbbrowse1:restorestate(.t.)
>>>>
>>>> RETURN NIL
>>>>
>>>> **********************************************************
>>>>
>>>> Agradecere su ayuda para la solucion de este problemilla ya que es la
>>>> misma
>>>> rutina que uso para la actualizacion de todas las tablas en mi
>>>> aplicacion.
>>>>
>>>> Saludos
>>>>
>>>> Fernando Hernandez
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>

Error cuando Cancelo Adicion de Nuevo Registro Usando ADO en Oracle

Publicado: Vie Mar 30, 2007 6:10 pm
por ignacio
Fernando,
> Ok, solo para hacer un poquito de historia. No se si se recuerda que
> cuando creaba un nuevo registro en el dataset, este automaticamente
> quedaba vacio, por lo que me recomendo en esa oportunidad fue crear un 2do
> dataset vacio y sobre ese agregar el nuevo registro.
Efectivamente este problema es el que ha habido que solucionar para poder
hacer Altas en línea con los Browses. ADO hace desaparecer completamente
todo el recordset cuando se encuentra en modo de AddNew().
Me alegro de ya le funcione. Gracias por su colaboración.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Fernando Hernandez" <dbfer@dilico.com.sv> escribió en el mensaje
news:[email=460d315b@ozsrv2.ozlan.local...]460d315b@ozsrv2.ozlan.local...[/email]
> Ahora si funciona con algunos cambios.
>
> Ok, solo para hacer un poquito de historia. No se si se recuerda que
> cuando creaba un nuevo registro en el dataset, este automaticamente
> quedaba vacio, por lo que me recomendo en esa oportunidad fue crear un 2do
> dataset vacio y sobre ese agregar el nuevo registro.
>
> Ahora bien, el cambio que he hecho es unicamente dejar el primer dataset,
> ya no tengo necesidad de crear el 2do para agregar un nuevo registro. Me
> imagino que en esta nueva version se solucionó el problema que tenia al
> inicio y que como via alterna creaba el 2do databaset.
>
> Espero me explique. Pero en conclusion quedaria solucionado, si encuentro
> algo mas le comento. Adjunto el procedimiento cambiado.
>
> Solo agregando algo mas, si fué necesario instalar el modulo que me envio
> este día; si no, no funcionaria.
>
> Saludos
>
> **********************************************************
> METHOD MantenAlta( oSender ) CLASS TFrmRuta
> Local clBusca
> ::odbbrowse1:savestate(.t.)
>
> IF ::odbBrowse1:lFilterBar
> ::odbBrowse1:lFilterBar := .f.
> Endif
>
>
> WITH OBJECT TFRMRUTAS()
> :lOnAppend := .f.
> :New( Application:oMainForm )
> ::osqltable1:addnew()
> :cText := "Agregar Rutas"
>
> :RequestState()
> IF :ShowModal() == mrOK
> ::osqltable1:Update()
> clBusca := ::osqltable1:Ruta
> ::osqlTable1:Refresh()
> ::osqlTable1:locate("Ruta='"+clBusca+"'" )
> ::Odbbrowse1:refresh()
> ::asignarico()
> ELSE
> ::osqltable1:Cancel()
> ENDIF
> END WITH
> ::odbbrowse1:restorestate(.t.)
> RETURN NIL
> **********************************************************
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:460d2ab4$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Fernando,
>>
>> No consigo reproducir tu problema, lo siento. En el ejemplo
>> DatacontrolsAdoData2, he puesto un botón en el primer TAB con el
>> siguiente código en su evento OnClick:
>>
>> METHOD Button9Click( oSender ) CLASS TForm1
>>
>> WITH OBJECT ::oSqlTable1
>> :AddNew()
>> :Cancel()
>> :Edit()
>> :Cancel()
>> END WITH
>>
>> RETURN Nil
>>
>> Y no se produce ningún error. Te importaría hacer lo mismo o intentar
>> provocar un error con este ejemplo. Gracias
>>
>> No quisiera sacar la actualización ligera a la 1.3c hasta que este
>> resuelto este problema.
>>
>> Un saludo
>>
>> --
>> Ignacio Ortiz de Zúñiga
>> http://www.xailer.com
>>
>>
>> "Fernando Hernandez" <dbfer@dilico.com.sv> escribió en el mensaje
>> news:[email=460d1eb0@ozsrv2.ozlan.local...]460d1eb0@ozsrv2.ozlan.local...[/email]
>>> Ahora el error que me da es el del archivo adjunto, antes funcionaba sin
>>> ningun problema el mismo codigo.
>>>
>>> Saludos
>>>
>>> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
>>> news:460cc733$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>>>> Fernando,
>>>>
>>>> Podría probar con el módulo que le adjunto. Perdone por las molestias.
>>>>
>>>> Un saludo
>>>>
>>>> --
>>>> Ignacio Ortiz de Zúñiga
>>>> http://www.xailer.com
>>>>
>>>>
>>>> "Fernando Hernandez" <dbfer@dilico.com.sv> escribió en el mensaje
>>>> news:[email=460c8d0b@ozsrv2.ozlan.local...]460c8d0b@ozsrv2.ozlan.local...[/email]
>>>>> Buenas Noches
>>>>>
>>>>> Estoy usando como base de datos Oracle Express para una aplicacion de
>>>>> sincronizacion de data entre un ERP en visual Fox y un sistema en
>>>>> equipos
>>>>> pocket PC.
>>>>>
>>>>> Luego del cambio a la version 1.3b y de cambiar la version del IDE por
>>>>> los
>>>>> problemas del tamaño de las ventanas, ahora me esta dando el siguiente
>>>>> error
>>>>> :
>>>>>
>>>>> ***************************** Registro de errores
>>>>> *****************************
>>>>>
>>>>> Fecha: 03/29/07
>>>>> Hora: 22:01:36
>>>>> Memoria libre: 45708
>>>>> Area actual: 1
>>>>>
>>>>> ------------------------- Información del
>>>>> compilador --------------------------
>>>>>
>>>>> Versión Xailer: Xailer 1.3.2 Version 1.3b
>>>>> Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version:
>>>>> 7
>>>>> Compilador C/C++: Borland C++ 5.5.1
>>>>> Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
>>>>>
>>>>> ----------------------- Información detallada del
>>>>> error -----------------------
>>>>>
>>>>> Subsistema: ADODB.RecordSet
>>>>> Código de error: 16389
>>>>> Estado: .F.
>>>>> Descripción: E_FAIL
>>>>> Operación: CANCELUPDATE
>>>>> Argumentos:
>>>>> Fichero:
>>>>> Código error SO: 0
>>>>>
>>>>> Pila de llamadas:
>>>>> TOLEAUTO:CANCELUPDATE (0)
>>>>> (b)XADORECORDS:XADORECORDS (51)
>>>>> TADORECORDS:CANCEL (0)
>>>>> TSQLTABLE:CANCEL (514)
>>>>> TFRMRUTA:MANTENALTA (98)
>>>>> TMAIN:MANTENALTA (151)
>>>>> TOPTIONITEM:ONCLICK (0)
>>>>> TOPTIONITEM:CLICK (273)
>>>>> TOPTIONLIST:WMLBUTTONDOWN (0)
>>>>> RUNFORM (0)
>>>>> TAPPLICATION:RUN (208)
>>>>> MAIN (15)
>>>>>
>>>>> **********************************************************
>>>>> En las versiones anteriores 1.1 a 1.2 el procedimiento me funciono
>>>>> bien
>>>>> (Luego que me sugirio que creara un Dataset vacio para la adicion de
>>>>> un
>>>>> nuevo registro). Esto me pasa luego de que cancelo un intento de
>>>>> agregar
>>>>> un
>>>>> nuevo registro. Adjunto incluyo parte del procedimiento.
>>>>> **********************************************************
>>>>> METHOD MantenAlta( oSender ) CLASS TFrmRuta
>>>>> // Local clFIlter := ::odbBrowse1:lFilterBar
>>>>> Local clBusca
>>>>> ::odbbrowse1:savestate(.t.)
>>>>>
>>>>> IF ::odbBrowse1:lFilterBar
>>>>> ::odbBrowse1:lFilterBar := .f.
>>>>> Endif
>>>>>
>>>>> WITH OBJECT ::oSQLTable2 := TSQLTable():New( Self )
>>>>> :oDataSource := ::oAdoDataSource1
>>>>> :cProcess := "GENERAL"
>>>>> :nCursorType := adOpenDynamic
>>>>> :nLockType := adLockOptimistic
>>>>> :cTableName := "PDA_RUTAS WHERE RUTA=' '"
>>>>> :Create()
>>>>> END
>>>>>
>>>>> ::oSqltable2:lOpen:=.T.
>>>>>
>>>>> WITH OBJECT TFRMRUTAS()
>>>>> :lOnAppend := .t.
>>>>> :New( Application:oMainForm )
>>>>> ::osqltable2:addnew()
>>>>> :cText := "Agregar Rutas"
>>>>>
>>>>> :RequestState()
>>>>> IF :ShowModal() == mrOK
>>>>> ::osqltable2:Update()
>>>>> clBusca := ::osqltable2:Ruta
>>>>> ::osqlTable1:Refresh()
>>>>> ::osqlTable1:locate("Ruta='"+clBusca+"'" )
>>>>> ::Odbbrowse1:refresh()
>>>>> ::asignarico()
>>>>> ELSE
>>>>> ::osqltable2:Cancel()
>>>>> ENDIF
>>>>> END WITH
>>>>>
>>>>> ::osqltable2:destroy()
>>>>> ::odbbrowse1:restorestate(.t.)
>>>>>
>>>>> RETURN NIL
>>>>>
>>>>> **********************************************************
>>>>>
>>>>> Agradecere su ayuda para la solucion de este problemilla ya que es la
>>>>> misma
>>>>> rutina que uso para la actualizacion de todas las tablas en mi
>>>>> aplicacion.
>>>>>
>>>>> Saludos
>>>>>
>>>>> Fernando Hernandez
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>
>

Error cuando Cancelo Adicion de Nuevo Registro Usando ADO en Oracle

Publicado: Jue May 17, 2007 12:39 am
por Fernando Hernandez
Buenas Tardes
Con relacion a este problema, esperaba que en la version 1.3c quedara
solucionado sin necesidad de instalar el modulo que me envio. Tenia dias de
no probar este problema, pero me he dado cuenta que persiste en la version
1.3c y no se si se mantiene en la version 1.4. Podria verificar este dato
antes de liberar la version 1.4 definitiva.
En espera de sus comentarios,....
Saludos
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:460cc733$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Fernando,
>
> Podría probar con el módulo que le adjunto. Perdone por las molestias.
>
> Un saludo
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "Fernando Hernandez" <dbfer@dilico.com.sv> escribió en el mensaje
> news:[email=460c8d0b@ozsrv2.ozlan.local...]460c8d0b@ozsrv2.ozlan.local...[/email]
>> Buenas Noches
>>
>> Estoy usando como base de datos Oracle Express para una aplicacion de
>> sincronizacion de data entre un ERP en visual Fox y un sistema en equipos
>> pocket PC.
>>
>> Luego del cambio a la version 1.3b y de cambiar la version del IDE por
>> los
>> problemas del tamaño de las ventanas, ahora me esta dando el siguiente
>> error
>> :
>>
>> ***************************** Registro de errores
>> *****************************
>>
>> Fecha: 03/29/07
>> Hora: 22:01:36
>> Memoria libre: 45708
>> Area actual: 1
>>
>> ------------------------- Información del
>> compilador --------------------------
>>
>> Versión Xailer: Xailer 1.3.2 Version 1.3b
>> Compilador: xHarbour build 0.99.61 Intl. (SimpLex) PCode Version: 7
>> Compilador C/C++: Borland C++ 5.5.1
>> Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
>>
>> ----------------------- Información detallada del
>> error -----------------------
>>
>> Subsistema: ADODB.RecordSet
>> Código de error: 16389
>> Estado: .F.
>> Descripción: E_FAIL
>> Operación: CANCELUPDATE
>> Argumentos:
>> Fichero:
>> Código error SO: 0
>>
>> Pila de llamadas:
>> TOLEAUTO:CANCELUPDATE (0)
>> (b)XADORECORDS:XADORECORDS (51)
>> TADORECORDS:CANCEL (0)
>> TSQLTABLE:CANCEL (514)
>> TFRMRUTA:MANTENALTA (98)
>> TMAIN:MANTENALTA (151)
>> TOPTIONITEM:ONCLICK (0)
>> TOPTIONITEM:CLICK (273)
>> TOPTIONLIST:WMLBUTTONDOWN (0)
>> RUNFORM (0)
>> TAPPLICATION:RUN (208)
>> MAIN (15)
>>
>> **********************************************************
>> En las versiones anteriores 1.1 a 1.2 el procedimiento me funciono bien
>> (Luego que me sugirio que creara un Dataset vacio para la adicion de un
>> nuevo registro). Esto me pasa luego de que cancelo un intento de agregar
>> un
>> nuevo registro. Adjunto incluyo parte del procedimiento.
>> **********************************************************
>> METHOD MantenAlta( oSender ) CLASS TFrmRuta
>> // Local clFIlter := ::odbBrowse1:lFilterBar
>> Local clBusca
>> ::odbbrowse1:savestate(.t.)
>>
>> IF ::odbBrowse1:lFilterBar
>> ::odbBrowse1:lFilterBar := .f.
>> Endif
>>
>> WITH OBJECT ::oSQLTable2 := TSQLTable():New( Self )
>> :oDataSource := ::oAdoDataSource1
>> :cProcess := "GENERAL"
>> :nCursorType := adOpenDynamic
>> :nLockType := adLockOptimistic
>> :cTableName := "PDA_RUTAS WHERE RUTA=' '"
>> :Create()
>> END
>>
>> ::oSqltable2:lOpen:=.T.
>>
>> WITH OBJECT TFRMRUTAS()
>> :lOnAppend := .t.
>> :New( Application:oMainForm )
>> ::osqltable2:addnew()
>> :cText := "Agregar Rutas"
>>
>> :RequestState()
>> IF :ShowModal() == mrOK
>> ::osqltable2:Update()
>> clBusca := ::osqltable2:Ruta
>> ::osqlTable1:Refresh()
>> ::osqlTable1:locate("Ruta='"+clBusca+"'" )
>> ::Odbbrowse1:refresh()
>> ::asignarico()
>> ELSE
>> ::osqltable2:Cancel()
>> ENDIF
>> END WITH
>>
>> ::osqltable2:destroy()
>> ::odbbrowse1:restorestate(.t.)
>>
>> RETURN NIL
>>
>> **********************************************************
>>
>> Agradecere su ayuda para la solucion de este problemilla ya que es la
>> misma
>> rutina que uso para la actualizacion de todas las tablas en mi
>> aplicacion.
>>
>> Saludos
>>
>> Fernando Hernandez
>>
>>
>
>
>