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.

Error en DataSet

Foro público de Xailer en español
Responder
X-Soft
Mensajes: 55
Registrado: Lun Ene 17, 2005 6:14 pm

Error en DataSet

Mensaje por X-Soft »

Hola a todos:
Tengo un pequeño problema con los DataSets.
En la pantalla tengo 3 DataSets (oDataset, oDataSetP y oDatasetT), e intento
que cuando se seleccione un registro en oDataset se filtren los otros dos
por el campo C_Codigo, que existe en los tres, y así lo hace pero me da un
error nada más hacerlo por el segundo filtro.
Consideraciones:
El campo C_CODIGO es tipo caracter en oDataset y oDatasetT, y numérico
en oDataSetP y curiosamente el error lo da al tratar con el numérico, no así
con el caracter. :-o
Ramón Torreblanca, Murcia
METHOD BrwChange( oSender, lBookMarkChanged ) CLASS FrmFicha
PRIVATE cCODIGO, cFiltros
cCODIGO := alltrim(::oDataset:C_Codigo) //valor del campo seleccionado
::oDatasetP:Clearfilter()
::oDatasetP:Filter( "C_CODIGO == " + cCODIGO, .T.)
::oDatasetP:Refresh()
cFiltros := "C_CODIGO == " + val(::oDataset:C_Codigo) // Linea 414
::oDatasetT:Clearfilter()
::oDatasetT:Filter( cFiltros, .T.)
::oDatasetT:Refresh()
RETURN Nil
***************************** Registro de errores
*****************************
Fecha: 09-05-05
Hora: 09:37:50
Memoria libre: 246424
Area actual: 3
------------------------- Información del
compilador --------------------------
Versión Xailer: Xailer 0.99.9 Pre-release 3 (April 2005)
Compilador: xHarbour build 0.99.3 Intl. (SimpLex) PCode Version: 5
Compilador C/C++: Borland C++ 5.5.1
Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
----------------------- Información detallada del
error -----------------------
Subsistema: BASE
Código de error: 1081
Estado: .F.
Descripción: Argument error
Operación: +
Argumentos: [ 1] = Tipo: C Valor: C_CODIGO == [ 2] = Tipo: N Valor:
1002
Fichero:
Código error SO: 0
Pila de llamadas:
FRMFICHA:BRWCHANGE (414)
TDBBROWSE:ONCHANGE (0)
TDBBROWSE:DSNAVIGATE (556)
TDBFDATASET:UPDATECONTROLS (308)
TDBFDATASET:NSKIP (422)
(b)TDBBROWSE:_ODATASET (148)
TDBBROWSE:ONSKIP (0)
TBROWSE:WMLBUTTONDOWN (1808)
(b)XDBBROWSE (67)
TDBBROWSE:WMLBUTTONDOWN (0)
RUNFORM (0)
TAPPLICATION:RUN (156)
MAIN (22)
------------------ Información detallada de áreas de
trabajo ------------------
Area: 1
Alias: CLIENTES
Registro: 74
Filtro:
Relación:
Orden del índice: 1
Clave activa: 1
Area: 2
Alias: TECNICOS
Registro: 156
Filtro:
Relación:
Orden del índice: 0
Clave activa: 0
Area: 3
Alias: PAGOS
Registro: 45
Filtro: C_CODIGO == 1002
Relación:
Orden del índice: 0
Clave activa: 0
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9447
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Error en DataSet

Mensaje por ignacio »

Ramón,
Si observas con detalle el achivo LOG te darás cuenta de que estás
intentando sumar una cadena con un número,
> Descripción: Argument error
> Operación: +
> Argumentos: [ 1] = Tipo: C Valor: C_CODIGO == [ 2] = Tipo: N Valor:
> 1002
Y concretamente AQUI:
cFiltros := "C_CODIGO == " + val(::oDataset:C_Codigo) // Linea 414
Piensalo, NUNCA, puede funcionar este código en ninguna versión de xBase que
yo conozca.
Cuando el campo es numérico el filtro sería de esta forma:
cFiltro := "C_CODIGO == " + C_Codigo)
Cuando el campo es tipo carácter el filtro sería de esta otra forma:
cFiltro := "C_CODIGO == [" + C_Codigo + "]" )
Nota: Puedes sustituir los [] por comillas simples si lo deseas.
Un saludo,
"Ramt Soft" <la_pirata@hotmail.com> escribió en el mensaje
news:427f15f7$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Hola a todos:
>
> Tengo un pequeño problema con los DataSets.
>
> En la pantalla tengo 3 DataSets (oDataset, oDataSetP y oDatasetT), e
> intento que cuando se seleccione un registro en oDataset se filtren los
> otros dos por el campo C_Codigo, que existe en los tres, y así lo hace
> pero me da un error nada más hacerlo por el segundo filtro.
>
> Consideraciones:
>
> El campo C_CODIGO es tipo caracter en oDataset y oDatasetT, y numérico
> en oDataSetP y curiosamente el error lo da al tratar con el numérico, no
> así con el caracter. :-o
>
> Ramón Torreblanca, Murcia
>
>
> METHOD BrwChange( oSender, lBookMarkChanged ) CLASS FrmFicha
> PRIVATE cCODIGO, cFiltros
>
> cCODIGO := alltrim(::oDataset:C_Codigo) //valor del campo seleccionado
> ::oDatasetP:Clearfilter()
> ::oDatasetP:Filter( "C_CODIGO == " + cCODIGO, .T.)
> ::oDatasetP:Refresh()
>
> cFiltros := "C_CODIGO == " + val(::oDataset:C_Codigo) // Linea 414
> ::oDatasetT:Clearfilter()
> ::oDatasetT:Filter( cFiltros, .T.)
> ::oDatasetT:Refresh()
>
> RETURN Nil
>
> ***************************** Registro de errores
> *****************************
>
> Fecha: 09-05-05
> Hora: 09:37:50
> Memoria libre: 246424
> Area actual: 3
>
> ------------------------- Información del
> compilador --------------------------
>
> Versión Xailer: Xailer 0.99.9 Pre-release 3 (April 2005)
> Compilador: xHarbour build 0.99.3 Intl. (SimpLex) PCode Version: 5
> Compilador C/C++: Borland C++ 5.5.1
> Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
>
> ----------------------- Información detallada del
> error -----------------------
>
> Subsistema: BASE
> Código de error: 1081
> Estado: .F.
> Descripción: Argument error
> Operación: +
> Argumentos: [ 1] = Tipo: C Valor: C_CODIGO == [ 2] = Tipo: N Valor:
> 1002
> Fichero:
> Código error SO: 0
>
> Pila de llamadas:
> FRMFICHA:BRWCHANGE (414)
> TDBBROWSE:ONCHANGE (0)
> TDBBROWSE:DSNAVIGATE (556)
> TDBFDATASET:UPDATECONTROLS (308)
> TDBFDATASET:NSKIP (422)
> (b)TDBBROWSE:_ODATASET (148)
> TDBBROWSE:ONSKIP (0)
> TBROWSE:WMLBUTTONDOWN (1808)
> (b)XDBBROWSE (67)
> TDBBROWSE:WMLBUTTONDOWN (0)
> RUNFORM (0)
> TAPPLICATION:RUN (156)
> MAIN (22)
>
> ------------------ Información detallada de áreas de
> trabajo ------------------
>
> Area: 1
> Alias: CLIENTES
> Registro: 74
> Filtro:
> Relación:
> Orden del índice: 1
> Clave activa: 1
>
> Area: 2
> Alias: TECNICOS
> Registro: 156
> Filtro:
> Relación:
> Orden del índice: 0
> Clave activa: 0
>
> Area: 3
> Alias: PAGOS
> Registro: 45
> Filtro: C_CODIGO == 1002
> Relación:
> Orden del índice: 0
> Clave activa: 0
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
X-Soft
Mensajes: 55
Registrado: Lun Ene 17, 2005 6:14 pm

Error en DataSet

Mensaje por X-Soft »

Muchisimas gracias. Funciona a la perfección:
Siento tener estos errores de bulto, pero hace muchos años que no programaba
con Clipper ya que lo di por "desaparecido" y me fugué a VB. :-o
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
news:427f1a98$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Ramón,
>
> Si observas con detalle el achivo LOG te darás cuenta de que estás
> intentando sumar una cadena con un número,
>
>> Descripción: Argument error
>> Operación: +
>> Argumentos: [ 1] = Tipo: C Valor: C_CODIGO == [ 2] = Tipo: N
>> Valor: 1002
>
> Y concretamente AQUI:
>
> cFiltros := "C_CODIGO == " + val(::oDataset:C_Codigo) // Linea 414
>
> Piensalo, NUNCA, puede funcionar este código en ninguna versión de xBase
> que yo conozca.
>
> Cuando el campo es numérico el filtro sería de esta forma:
>
> cFiltro := "C_CODIGO == " + C_Codigo)
>
> Cuando el campo es tipo carácter el filtro sería de esta otra forma:
>
> cFiltro := "C_CODIGO == [" + C_Codigo + "]" )
>
> Nota: Puedes sustituir los [] por comillas simples si lo deseas.
>
> Un saludo,
>
> "Ramt Soft" <la_pirata@hotmail.com> escribió en el mensaje
> news:427f15f7$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Hola a todos:
>>
>> Tengo un pequeño problema con los DataSets.
>>
>> En la pantalla tengo 3 DataSets (oDataset, oDataSetP y oDatasetT), e
>> intento que cuando se seleccione un registro en oDataset se filtren los
>> otros dos por el campo C_Codigo, que existe en los tres, y así lo hace
>> pero me da un error nada más hacerlo por el segundo filtro.
>>
>> Consideraciones:
>>
>> El campo C_CODIGO es tipo caracter en oDataset y oDatasetT, y numérico
>> en oDataSetP y curiosamente el error lo da al tratar con el numérico, no
>> así con el caracter. :-o
>>
>> Ramón Torreblanca, Murcia
>>
>>
>> METHOD BrwChange( oSender, lBookMarkChanged ) CLASS FrmFicha
>> PRIVATE cCODIGO, cFiltros
>>
>> cCODIGO := alltrim(::oDataset:C_Codigo) //valor del campo seleccionado
>> ::oDatasetP:Clearfilter()
>> ::oDatasetP:Filter( "C_CODIGO == " + cCODIGO, .T.)
>> ::oDatasetP:Refresh()
>>
>> cFiltros := "C_CODIGO == " + val(::oDataset:C_Codigo) // Linea 414
>> ::oDatasetT:Clearfilter()
>> ::oDatasetT:Filter( cFiltros, .T.)
>> ::oDatasetT:Refresh()
>>
>> RETURN Nil
>>
>> ***************************** Registro de errores
>> *****************************
>>
>> Fecha: 09-05-05
>> Hora: 09:37:50
>> Memoria libre: 246424
>> Area actual: 3
>>
>> ------------------------- Información del
>> compilador --------------------------
>>
>> Versión Xailer: Xailer 0.99.9 Pre-release 3 (April 2005)
>> Compilador: xHarbour build 0.99.3 Intl. (SimpLex) PCode Version: 5
>> Compilador C/C++: Borland C++ 5.5.1
>> Plataforma: Windows XP Professional 5.01.2600 Service Pack 2
>>
>> ----------------------- Información detallada del
>> error -----------------------
>>
>> Subsistema: BASE
>> Código de error: 1081
>> Estado: .F.
>> Descripción: Argument error
>> Operación: +
>> Argumentos: [ 1] = Tipo: C Valor: C_CODIGO == [ 2] = Tipo: N
>> Valor: 1002
>> Fichero:
>> Código error SO: 0
>>
>> Pila de llamadas:
>> FRMFICHA:BRWCHANGE (414)
>> TDBBROWSE:ONCHANGE (0)
>> TDBBROWSE:DSNAVIGATE (556)
>> TDBFDATASET:UPDATECONTROLS (308)
>> TDBFDATASET:NSKIP (422)
>> (b)TDBBROWSE:_ODATASET (148)
>> TDBBROWSE:ONSKIP (0)
>> TBROWSE:WMLBUTTONDOWN (1808)
>> (b)XDBBROWSE (67)
>> TDBBROWSE:WMLBUTTONDOWN (0)
>> RUNFORM (0)
>> TAPPLICATION:RUN (156)
>> MAIN (22)
>>
>> ------------------ Información detallada de áreas de
>> trabajo ------------------
>>
>> Area: 1
>> Alias: CLIENTES
>> Registro: 74
>> Filtro:
>> Relación:
>> Orden del índice: 1
>> Clave activa: 1
>>
>> Area: 2
>> Alias: TECNICOS
>> Registro: 156
>> Filtro:
>> Relación:
>> Orden del índice: 0
>> Clave activa: 0
>>
>> Area: 3
>> Alias: PAGOS
>> Registro: 45
>> Filtro: C_CODIGO == 1002
>> Relación:
>> Orden del índice: 0
>> Clave activa: 0
>>
>>
>
>
Responder