Hola,
Tengo una tabla de una BD de Firebird con un campo cuyo nombre es
'DESCRIPCION_LINEA".
El siguiente código me da error:
::oDataset := ::oConn:NewDataSet( ::oSql:Value ) //::oSql:Value :=
"SELECT * FROM ARTICULOS"
::oDataSet:Open()
MsgInfo( ::oDataSet:Descripcion_linea ) //<<<---- aquí se genera el error
TODBCDATASET:DESCRIPCION_LINEA(391)
Error BASE/1004 Message not found: TOdbcDataSet:DESCRIPCION_LINEA
Curiosamente ese error solo ocurre cuando el nombre del campo es
superior a 10.
¿Hay alguna manera de poder utilizar el nombre completo del campo sin
tener que recortar la longitud del mismo ni tener que utilizar el método
FieldGetByName?
Otra cosa... El error que se ve en la imagen me sucede de tanto en
tanto. Es una conexión odbc a una bd MySql que está en internet.
Este error error aparece al hacer esta instrucción:
::oDataset := ::oConn:NewDataSet( ::oSql:Value )
¿Hay alguna manera de comprobar si ::oDataSet es válido? He comprobado
que tanto si aparece ese error como si no, VALTYPE(::oDataset) == "O".
Mirando en la ayuda no he sabido ver método, evento o propiedad que
informe de los posibles errores del método ::NewDataSet (tambien lo he
probado con el método ::Query).
En fin, de momento esto...
Gracias mil por vuestra ayuda.
Saludos,
José Luis Capel
PD: espero que mis explicaciones sean suficientemente claras....
--
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.
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.
DataSet y nombres de campos y alguna otra cosilla
- ignacio
- Site Admin
- Mensajes: 9441
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
DataSet y nombres de campos y alguna otra cosilla
José Luis,
Hecho.
En cuanto al error que reportas como puedes ver el propio driver de ODBC te
está dando alguna pista de que pierde la conexión. Quizas con otro cliente
ODBC se te arregle el problema. No lo se realmente.
El objeto TDataSet tiene dos propiedades de control de errores, pero lo que
me extraña es que no te avise de los errores cuando se producen a no ser de
que tengas lDisplayErrors a falso. Estos son:
- nLastError si > 0 ha habido un error
- cLastError si !Empty() error e indica la descripción del mismo
También puedes comprobar todos los errores a través de su TDataSource:
- IsError()
- LastError()
- GetErrors()
- ShowErrorList()
Un saludo,
"José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
news:[email=42a8020e@ozsrvnegro.ozlan.local...]42a8020e@ozsrvnegro.ozlan.local...[/email]
> Hola,
>
> Tengo una tabla de una BD de Firebird con un campo cuyo nombre es
> 'DESCRIPCION_LINEA".
>
> El siguiente código me da error:
>
> ::oDataset := ::oConn:NewDataSet( ::oSql:Value ) //::oSql:Value :=
> "SELECT * FROM ARTICULOS"
>
> ::oDataSet:Open()
> MsgInfo( ::oDataSet:Descripcion_linea ) //<<<---- aquí se genera el error
>
> TODBCDATASET:DESCRIPCION_LINEA(391)
> Error BASE/1004 Message not found: TOdbcDataSet:DESCRIPCION_LINEA
>
> Curiosamente ese error solo ocurre cuando el nombre del campo es
> superior a 10.
>
> ¿Hay alguna manera de poder utilizar el nombre completo del campo sin
> tener que recortar la longitud del mismo ni tener que utilizar el método
> FieldGetByName?
>
> Otra cosa... El error que se ve en la imagen me sucede de tanto en
> tanto. Es una conexión odbc a una bd MySql que está en internet.
>
> Este error error aparece al hacer esta instrucción:
>
> ::oDataset := ::oConn:NewDataSet( ::oSql:Value )
>
> ¿Hay alguna manera de comprobar si ::oDataSet es válido? He comprobado
> que tanto si aparece ese error como si no, VALTYPE(::oDataset) == "O".
> Mirando en la ayuda no he sabido ver método, evento o propiedad que
> informe de los posibles errores del método ::NewDataSet (tambien lo he
> probado con el método ::Query).
>
> En fin, de momento esto...
>
> Gracias mil por vuestra ayuda.
> Saludos,
> José Luis Capel
> PD: espero que mis explicaciones sean suficientemente claras....
>
------------------------------------------------------------ --------------------
Hecho.
En cuanto al error que reportas como puedes ver el propio driver de ODBC te
está dando alguna pista de que pierde la conexión. Quizas con otro cliente
ODBC se te arregle el problema. No lo se realmente.
El objeto TDataSet tiene dos propiedades de control de errores, pero lo que
me extraña es que no te avise de los errores cuando se producen a no ser de
que tengas lDisplayErrors a falso. Estos son:
- nLastError si > 0 ha habido un error
- cLastError si !Empty() error e indica la descripción del mismo
También puedes comprobar todos los errores a través de su TDataSource:
- IsError()
- LastError()
- GetErrors()
- ShowErrorList()
Un saludo,
"José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
news:[email=42a8020e@ozsrvnegro.ozlan.local...]42a8020e@ozsrvnegro.ozlan.local...[/email]
> Hola,
>
> Tengo una tabla de una BD de Firebird con un campo cuyo nombre es
> 'DESCRIPCION_LINEA".
>
> El siguiente código me da error:
>
> ::oDataset := ::oConn:NewDataSet( ::oSql:Value ) //::oSql:Value :=
> "SELECT * FROM ARTICULOS"
>
> ::oDataSet:Open()
> MsgInfo( ::oDataSet:Descripcion_linea ) //<<<---- aquí se genera el error
>
> TODBCDATASET:DESCRIPCION_LINEA(391)
> Error BASE/1004 Message not found: TOdbcDataSet:DESCRIPCION_LINEA
>
> Curiosamente ese error solo ocurre cuando el nombre del campo es
> superior a 10.
>
> ¿Hay alguna manera de poder utilizar el nombre completo del campo sin
> tener que recortar la longitud del mismo ni tener que utilizar el método
> FieldGetByName?
>
> Otra cosa... El error que se ve en la imagen me sucede de tanto en
> tanto. Es una conexión odbc a una bd MySql que está en internet.
>
> Este error error aparece al hacer esta instrucción:
>
> ::oDataset := ::oConn:NewDataSet( ::oSql:Value )
>
> ¿Hay alguna manera de comprobar si ::oDataSet es válido? He comprobado
> que tanto si aparece ese error como si no, VALTYPE(::oDataset) == "O".
> Mirando en la ayuda no he sabido ver método, evento o propiedad que
> informe de los posibles errores del método ::NewDataSet (tambien lo he
> probado con el método ::Query).
>
> En fin, de momento esto...
>
> Gracias mil por vuestra ayuda.
> Saludos,
> José Luis Capel
> PD: espero que mis explicaciones sean suficientemente claras....
>
------------------------------------------------------------ --------------------
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
DataSet y nombres de campos y alguna otra cosilla
Ignacio,
>
> El objeto TDataSet tiene dos propiedades de control de errores, pero lo que
> me extraña es que no te avise de los errores cuando se producen a no ser de
> que tengas lDisplayErrors a falso. Estos son:
>
> - nLastError si > 0 ha habido un error
> - cLastError si !Empty() error e indica la descripción del mismo
>
> También puedes comprobar todos los errores a través de su TDataSource:
>
> - IsError()
> - LastError()
> - GetErrors()
> - ShowErrorList()
>
Ya me han avisado de que me ponga gafas!!
Muchas gracias por tu ayuda y paciencia....
Saludos,
José Luis Capel
PD: ya me comentarás algo sobre el tema de los nombres de los campos
>
> El objeto TDataSet tiene dos propiedades de control de errores, pero lo que
> me extraña es que no te avise de los errores cuando se producen a no ser de
> que tengas lDisplayErrors a falso. Estos son:
>
> - nLastError si > 0 ha habido un error
> - cLastError si !Empty() error e indica la descripción del mismo
>
> También puedes comprobar todos los errores a través de su TDataSource:
>
> - IsError()
> - LastError()
> - GetErrors()
> - ShowErrorList()
>
Ya me han avisado de que me ponga gafas!!

Muchas gracias por tu ayuda y paciencia....
Saludos,
José Luis Capel
PD: ya me comentarás algo sobre el tema de los nombres de los campos
DataSet y nombres de campos y alguna otra cosilla
Ignacio,
Este código:
METHOD Button1Click( oSender ) CLASS TExecSQL
if ::oBrowse:oDataSet != nil
::oBrowse:oDataSet:End()
::oBrowse:oDataSet := nil
endif
::oDataSet := ::oConn:NewDataSet( ::oSQL:Value )
//::oDataSet := ::oConn:Query( ::oSQL:Value )
IF ::oDataset:nLastError > 0
MsgInfo("Error: "+ ::oDataset:cLastError)
RETURN NIL
ENDIF
IF ::oConn:iserror()
MsgInfo("Error (oConn)")
RETURN NIL
ENDIF
RETURN NIL
No detecta el error que te indico al inicio del hilo.
Es decir, no muestra ningún MsgInfo. ¿Que hago mal?
Si quieres te puedo mandar el proyecto y por privado te mando la dsn de
la bd que tengo en internet (para ver ese error en concreto).
Lo he probado tanto con NewDataSet como con Query (ambos con el mismo
resultado).
Saludos y gracias por tu ayuda.
José Luis Capel
Ignacio Ortiz de Zúñiga escribió:
> José Luis,
>
> Hecho.
>
> En cuanto al error que reportas como puedes ver el propio driver de ODBC te
> está dando alguna pista de que pierde la conexión. Quizas con otro cliente
> ODBC se te arregle el problema. No lo se realmente.
>
> El objeto TDataSet tiene dos propiedades de control de errores, pero lo que
> me extraña es que no te avise de los errores cuando se producen a no ser de
> que tengas lDisplayErrors a falso. Estos son:
>
> - nLastError si > 0 ha habido un error
> - cLastError si !Empty() error e indica la descripción del mismo
>
> También puedes comprobar todos los errores a través de su TDataSource:
>
> - IsError()
> - LastError()
> - GetErrors()
> - ShowErrorList()
>
> Un saludo,
>
> "José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
> news:[email=42a8020e@ozsrvnegro.ozlan.local...]42a8020e@ozsrvnegro.ozlan.local...[/email]
>
>>Hola,
>>
>>Tengo una tabla de una BD de Firebird con un campo cuyo nombre es
>>'DESCRIPCION_LINEA".
>>
>>El siguiente código me da error:
>>
>>::oDataset := ::oConn:NewDataSet( ::oSql:Value ) //::oSql:Value :=
>>"SELECT * FROM ARTICULOS"
>>
>>::oDataSet:Open()
>>MsgInfo( ::oDataSet:Descripcion_linea ) //<<<---- aquí se genera el error
>>
>>TODBCDATASET:DESCRIPCION_LINEA(391)
>>Error BASE/1004 Message not found: TOdbcDataSet:DESCRIPCION_LINEA
>>
>>Curiosamente ese error solo ocurre cuando el nombre del campo es
>>superior a 10.
>>
>>¿Hay alguna manera de poder utilizar el nombre completo del campo sin
>>tener que recortar la longitud del mismo ni tener que utilizar el método
>> FieldGetByName?
>>
>>Otra cosa... El error que se ve en la imagen me sucede de tanto en
>>tanto. Es una conexión odbc a una bd MySql que está en internet.
>>
>>Este error error aparece al hacer esta instrucción:
>>
>>::oDataset := ::oConn:NewDataSet( ::oSql:Value )
>>
>>¿Hay alguna manera de comprobar si ::oDataSet es válido? He comprobado
>>que tanto si aparece ese error como si no, VALTYPE(::oDataset) == "O".
>>Mirando en la ayuda no he sabido ver método, evento o propiedad que
>>informe de los posibles errores del método ::NewDataSet (tambien lo he
>>probado con el método ::Query).
>>
>>En fin, de momento esto...
>>
>>Gracias mil por vuestra ayuda.
>>Saludos,
>>José Luis Capel
>>PD: espero que mis explicaciones sean suficientemente claras....
>>
>
>
>
> ------------------------------------------------------------ --------------------
>
>
>
>
>
Este código:
METHOD Button1Click( oSender ) CLASS TExecSQL
if ::oBrowse:oDataSet != nil
::oBrowse:oDataSet:End()
::oBrowse:oDataSet := nil
endif
::oDataSet := ::oConn:NewDataSet( ::oSQL:Value )
//::oDataSet := ::oConn:Query( ::oSQL:Value )
IF ::oDataset:nLastError > 0
MsgInfo("Error: "+ ::oDataset:cLastError)
RETURN NIL
ENDIF
IF ::oConn:iserror()
MsgInfo("Error (oConn)")
RETURN NIL
ENDIF
RETURN NIL
No detecta el error que te indico al inicio del hilo.
Es decir, no muestra ningún MsgInfo. ¿Que hago mal?
Si quieres te puedo mandar el proyecto y por privado te mando la dsn de
la bd que tengo en internet (para ver ese error en concreto).
Lo he probado tanto con NewDataSet como con Query (ambos con el mismo
resultado).
Saludos y gracias por tu ayuda.
José Luis Capel
Ignacio Ortiz de Zúñiga escribió:
> José Luis,
>
> Hecho.
>
> En cuanto al error que reportas como puedes ver el propio driver de ODBC te
> está dando alguna pista de que pierde la conexión. Quizas con otro cliente
> ODBC se te arregle el problema. No lo se realmente.
>
> El objeto TDataSet tiene dos propiedades de control de errores, pero lo que
> me extraña es que no te avise de los errores cuando se producen a no ser de
> que tengas lDisplayErrors a falso. Estos son:
>
> - nLastError si > 0 ha habido un error
> - cLastError si !Empty() error e indica la descripción del mismo
>
> También puedes comprobar todos los errores a través de su TDataSource:
>
> - IsError()
> - LastError()
> - GetErrors()
> - ShowErrorList()
>
> Un saludo,
>
> "José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
> news:[email=42a8020e@ozsrvnegro.ozlan.local...]42a8020e@ozsrvnegro.ozlan.local...[/email]
>
>>Hola,
>>
>>Tengo una tabla de una BD de Firebird con un campo cuyo nombre es
>>'DESCRIPCION_LINEA".
>>
>>El siguiente código me da error:
>>
>>::oDataset := ::oConn:NewDataSet( ::oSql:Value ) //::oSql:Value :=
>>"SELECT * FROM ARTICULOS"
>>
>>::oDataSet:Open()
>>MsgInfo( ::oDataSet:Descripcion_linea ) //<<<---- aquí se genera el error
>>
>>TODBCDATASET:DESCRIPCION_LINEA(391)
>>Error BASE/1004 Message not found: TOdbcDataSet:DESCRIPCION_LINEA
>>
>>Curiosamente ese error solo ocurre cuando el nombre del campo es
>>superior a 10.
>>
>>¿Hay alguna manera de poder utilizar el nombre completo del campo sin
>>tener que recortar la longitud del mismo ni tener que utilizar el método
>> FieldGetByName?
>>
>>Otra cosa... El error que se ve en la imagen me sucede de tanto en
>>tanto. Es una conexión odbc a una bd MySql que está en internet.
>>
>>Este error error aparece al hacer esta instrucción:
>>
>>::oDataset := ::oConn:NewDataSet( ::oSql:Value )
>>
>>¿Hay alguna manera de comprobar si ::oDataSet es válido? He comprobado
>>que tanto si aparece ese error como si no, VALTYPE(::oDataset) == "O".
>>Mirando en la ayuda no he sabido ver método, evento o propiedad que
>>informe de los posibles errores del método ::NewDataSet (tambien lo he
>>probado con el método ::Query).
>>
>>En fin, de momento esto...
>>
>>Gracias mil por vuestra ayuda.
>>Saludos,
>>José Luis Capel
>>PD: espero que mis explicaciones sean suficientemente claras....
>>
>
>
>
> ------------------------------------------------------------ --------------------
>
>
>
>
>
- ignacio
- Site Admin
- Mensajes: 9441
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
DataSet y nombres de campos y alguna otra cosilla
José Luis,
Ya esta arreglado. Estará en la próxima PR.
Saludos,
"José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
news:[email=42a861df@ozsrvnegro.ozlan.local...]42a861df@ozsrvnegro.ozlan.local...[/email]
> Ignacio,
>
>>
>> El objeto TDataSet tiene dos propiedades de control de errores, pero lo
>> que me extraña es que no te avise de los errores cuando se producen a no
>> ser de que tengas lDisplayErrors a falso. Estos son:
>>
>> - nLastError si > 0 ha habido un error
>> - cLastError si !Empty() error e indica la descripción del mismo
>>
>
>> También puedes comprobar todos los errores a través de su TDataSource:
>>
>> - IsError()
>> - LastError()
>> - GetErrors()
>> - ShowErrorList()
>>
>
> Ya me han avisado de que me ponga gafas!!
>
> Muchas gracias por tu ayuda y paciencia....
>
> Saludos,
> José Luis Capel
> PD: ya me comentarás algo sobre el tema de los nombres de los campos
Ya esta arreglado. Estará en la próxima PR.
Saludos,
"José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
news:[email=42a861df@ozsrvnegro.ozlan.local...]42a861df@ozsrvnegro.ozlan.local...[/email]
> Ignacio,
>
>>
>> El objeto TDataSet tiene dos propiedades de control de errores, pero lo
>> que me extraña es que no te avise de los errores cuando se producen a no
>> ser de que tengas lDisplayErrors a falso. Estos son:
>>
>> - nLastError si > 0 ha habido un error
>> - cLastError si !Empty() error e indica la descripción del mismo
>>
>
>> También puedes comprobar todos los errores a través de su TDataSource:
>>
>> - IsError()
>> - LastError()
>> - GetErrors()
>> - ShowErrorList()
>>
>
> Ya me han avisado de que me ponga gafas!!

>
> Muchas gracias por tu ayuda y paciencia....
>
> Saludos,
> José Luis Capel
> PD: ya me comentarás algo sobre el tema de los nombres de los campos
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
- ignacio
- Site Admin
- Mensajes: 9441
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
DataSet y nombres de campos y alguna otra cosilla
José Luis,
Has intentado abrir el Dataset con lOpen := .t.
Saludos
"José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
news:42a86561$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Ignacio,
>
> Este código:
>
> METHOD Button1Click( oSender ) CLASS TExecSQL
>
> if ::oBrowse:oDataSet != nil
> ::oBrowse:oDataSet:End()
> ::oBrowse:oDataSet := nil
> endif
>
> ::oDataSet := ::oConn:NewDataSet( ::oSQL:Value )
> //::oDataSet := ::oConn:Query( ::oSQL:Value )
>
> IF ::oDataset:nLastError > 0
> MsgInfo("Error: "+ ::oDataset:cLastError)
> RETURN NIL
> ENDIF
>
> IF ::oConn:iserror()
> MsgInfo("Error (oConn)")
> RETURN NIL
> ENDIF
>
> RETURN NIL
>
>
> No detecta el error que te indico al inicio del hilo.
>
> Es decir, no muestra ningún MsgInfo. ¿Que hago mal?
>
> Si quieres te puedo mandar el proyecto y por privado te mando la dsn de la
> bd que tengo en internet (para ver ese error en concreto).
>
> Lo he probado tanto con NewDataSet como con Query (ambos con el mismo
> resultado).
>
> Saludos y gracias por tu ayuda.
> José Luis Capel
>
> Ignacio Ortiz de Zúñiga escribió:
>> José Luis,
>>
>> Hecho.
>>
>> En cuanto al error que reportas como puedes ver el propio driver de ODBC
>> te está dando alguna pista de que pierde la conexión. Quizas con otro
>> cliente ODBC se te arregle el problema. No lo se realmente.
>>
>> El objeto TDataSet tiene dos propiedades de control de errores, pero lo
>> que me extraña es que no te avise de los errores cuando se producen a no
>> ser de que tengas lDisplayErrors a falso. Estos son:
>>
>> - nLastError si > 0 ha habido un error
>> - cLastError si !Empty() error e indica la descripción del mismo
>>
>> También puedes comprobar todos los errores a través de su TDataSource:
>>
>> - IsError()
>> - LastError()
>> - GetErrors()
>> - ShowErrorList()
>>
>> Un saludo,
>>
>> "José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
>> news:[email=42a8020e@ozsrvnegro.ozlan.local...]42a8020e@ozsrvnegro.ozlan.local...[/email]
>>
>>>Hola,
>>>
>>>Tengo una tabla de una BD de Firebird con un campo cuyo nombre es
>>>'DESCRIPCION_LINEA".
>>>
>>>El siguiente código me da error:
>>>
>>>::oDataset := ::oConn:NewDataSet( ::oSql:Value ) //::oSql:Value :=
>>>"SELECT * FROM ARTICULOS"
>>>
>>>::oDataSet:Open()
>>>MsgInfo( ::oDataSet:Descripcion_linea ) //<<<---- aquí se genera el
>>>error
>>>
>>>TODBCDATASET:DESCRIPCION_LINEA(391)
>>>Error BASE/1004 Message not found: TOdbcDataSet:DESCRIPCION_LINEA
>>>
>>>Curiosamente ese error solo ocurre cuando el nombre del campo es
>>>superior a 10.
>>>
>>>¿Hay alguna manera de poder utilizar el nombre completo del campo sin
>>>tener que recortar la longitud del mismo ni tener que utilizar el método
>>> FieldGetByName?
>>>
>>>Otra cosa... El error que se ve en la imagen me sucede de tanto en
>>>tanto. Es una conexión odbc a una bd MySql que está en internet.
>>>
>>>Este error error aparece al hacer esta instrucción:
>>>
>>>::oDataset := ::oConn:NewDataSet( ::oSql:Value )
>>>
>>>¿Hay alguna manera de comprobar si ::oDataSet es válido? He comprobado
>>>que tanto si aparece ese error como si no, VALTYPE(::oDataset) == "O".
>>>Mirando en la ayuda no he sabido ver método, evento o propiedad que
>>>informe de los posibles errores del método ::NewDataSet (tambien lo he
>>>probado con el método ::Query).
>>>
>>>En fin, de momento esto...
>>>
>>>Gracias mil por vuestra ayuda.
>>>Saludos,
>>>José Luis Capel
>>>PD: espero que mis explicaciones sean suficientemente claras....
>>>
>>
>>
>>
>> ------------------------------------------------------------ --------------------
>>
>>
>>
>>
Has intentado abrir el Dataset con lOpen := .t.
Saludos
"José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
news:42a86561$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Ignacio,
>
> Este código:
>
> METHOD Button1Click( oSender ) CLASS TExecSQL
>
> if ::oBrowse:oDataSet != nil
> ::oBrowse:oDataSet:End()
> ::oBrowse:oDataSet := nil
> endif
>
> ::oDataSet := ::oConn:NewDataSet( ::oSQL:Value )
> //::oDataSet := ::oConn:Query( ::oSQL:Value )
>
> IF ::oDataset:nLastError > 0
> MsgInfo("Error: "+ ::oDataset:cLastError)
> RETURN NIL
> ENDIF
>
> IF ::oConn:iserror()
> MsgInfo("Error (oConn)")
> RETURN NIL
> ENDIF
>
> RETURN NIL
>
>
> No detecta el error que te indico al inicio del hilo.
>
> Es decir, no muestra ningún MsgInfo. ¿Que hago mal?
>
> Si quieres te puedo mandar el proyecto y por privado te mando la dsn de la
> bd que tengo en internet (para ver ese error en concreto).
>
> Lo he probado tanto con NewDataSet como con Query (ambos con el mismo
> resultado).
>
> Saludos y gracias por tu ayuda.
> José Luis Capel
>
> Ignacio Ortiz de Zúñiga escribió:
>> José Luis,
>>
>> Hecho.
>>
>> En cuanto al error que reportas como puedes ver el propio driver de ODBC
>> te está dando alguna pista de que pierde la conexión. Quizas con otro
>> cliente ODBC se te arregle el problema. No lo se realmente.
>>
>> El objeto TDataSet tiene dos propiedades de control de errores, pero lo
>> que me extraña es que no te avise de los errores cuando se producen a no
>> ser de que tengas lDisplayErrors a falso. Estos son:
>>
>> - nLastError si > 0 ha habido un error
>> - cLastError si !Empty() error e indica la descripción del mismo
>>
>> También puedes comprobar todos los errores a través de su TDataSource:
>>
>> - IsError()
>> - LastError()
>> - GetErrors()
>> - ShowErrorList()
>>
>> Un saludo,
>>
>> "José Luis Capel" <joseluis@iaicom.com> escribió en el mensaje
>> news:[email=42a8020e@ozsrvnegro.ozlan.local...]42a8020e@ozsrvnegro.ozlan.local...[/email]
>>
>>>Hola,
>>>
>>>Tengo una tabla de una BD de Firebird con un campo cuyo nombre es
>>>'DESCRIPCION_LINEA".
>>>
>>>El siguiente código me da error:
>>>
>>>::oDataset := ::oConn:NewDataSet( ::oSql:Value ) //::oSql:Value :=
>>>"SELECT * FROM ARTICULOS"
>>>
>>>::oDataSet:Open()
>>>MsgInfo( ::oDataSet:Descripcion_linea ) //<<<---- aquí se genera el
>>>error
>>>
>>>TODBCDATASET:DESCRIPCION_LINEA(391)
>>>Error BASE/1004 Message not found: TOdbcDataSet:DESCRIPCION_LINEA
>>>
>>>Curiosamente ese error solo ocurre cuando el nombre del campo es
>>>superior a 10.
>>>
>>>¿Hay alguna manera de poder utilizar el nombre completo del campo sin
>>>tener que recortar la longitud del mismo ni tener que utilizar el método
>>> FieldGetByName?
>>>
>>>Otra cosa... El error que se ve en la imagen me sucede de tanto en
>>>tanto. Es una conexión odbc a una bd MySql que está en internet.
>>>
>>>Este error error aparece al hacer esta instrucción:
>>>
>>>::oDataset := ::oConn:NewDataSet( ::oSql:Value )
>>>
>>>¿Hay alguna manera de comprobar si ::oDataSet es válido? He comprobado
>>>que tanto si aparece ese error como si no, VALTYPE(::oDataset) == "O".
>>>Mirando en la ayuda no he sabido ver método, evento o propiedad que
>>>informe de los posibles errores del método ::NewDataSet (tambien lo he
>>>probado con el método ::Query).
>>>
>>>En fin, de momento esto...
>>>
>>>Gracias mil por vuestra ayuda.
>>>Saludos,
>>>José Luis Capel
>>>PD: espero que mis explicaciones sean suficientemente claras....
>>>
>>
>>
>>
>> ------------------------------------------------------------ --------------------
>>
>>
>>
>>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com