Error ADSADT/5005 Error 5005
- Vikthor.Thomas
- Posts: 144
- Joined: Thu Jan 02, 2014 1:49 pm
Error ADSADT/5005 Error 5005
Buen día a tod@s
Estoy realizando una consulta usando Advantage Database versión 10, Harbour 3.2 dev 64 Bits , FWH64.1311
Y obtengo el siguiente mensaje de error :
Error ADSADT/5005 Error 5005: The supplied buffer was insufficient for the information returned. The data may have been truncated.
Le ha sucedido a alguien más ?
La misma consulta usando el ARC finaliza sin presentar problema.
Saludos
Estoy realizando una consulta usando Advantage Database versión 10, Harbour 3.2 dev 64 Bits , FWH64.1311
Y obtengo el siguiente mensaje de error :
Error ADSADT/5005 Error 5005: The supplied buffer was insufficient for the information returned. The data may have been truncated.
Le ha sucedido a alguien más ?
La misma consulta usando el ARC finaliza sin presentar problema.
Saludos
Re: Error ADSADT/5005 Error 5005
Hola
Esperimentastes configurar, la data
:CacheSize := 100
Esperimentastes configurar, la data
:CacheSize := 100
Saludos/regards
RenOmaS
skype: americo.balboa
RenOmaS
skype: americo.balboa
- Vikthor.Thomas
- Posts: 144
- Joined: Thu Jan 02, 2014 1:49 pm
Re: Error ADSADT/5005 Error 5005
En que Objeto está esa data ?
Re: Error ADSADT/5005 Error 5005
Buenas.
en el recordset, antes del open
vea como utiliza fivewin wn adofuncs.prg
en el recordset, antes del open
vea como utiliza fivewin wn adofuncs.prg
Code: Select all
WITH OBJECT oRs
if ! Empty( oCn )
:ActiveConnection := oCn
endif
:Source := cSql
:LockType := nLockType
:CursorLocation := 3 // adUseClient
:CacheSize := 100
:CursorType := nCursorType // adOpenDynamic
if nMaxRecords != nil
:MaxRecords := nMaxRecords
endif
//
TRY
#ifdef __XHARBOUR__
if nOpt == nil
:Open()
else
:Open( OleDefaultArg(), OleDefaultArg(), OleDefaultArg(), OleDefaultArg(), nOpt )
endif
#else
if nOpt == nil .or. Empty( oCn )
:Open()
else
:Open( :Source, :ActiveConnection, :CursorType, :LockType, nOpt )
endif
#endif
CATCH
if ! Empty( oCn )
FW_ShowAdoError( oCn )
endif
oRs := nil
END
END
Saludos/regards
RenOmaS
skype: americo.balboa
RenOmaS
skype: americo.balboa
- Vikthor.Thomas
- Posts: 144
- Joined: Thu Jan 02, 2014 1:49 pm
Re: Error ADSADT/5005 Error 5005
Gracias por la respuesta
Alguna otra sugerencia, yo no estoy usando ADO
Alguna otra sugerencia, yo no estoy usando ADO
Code: Select all
cQuery:=alltrim(cQuery)
AdsConnect( cPath )
hAds := AdsConnection()
If hAds == 0
MsgInfo( "La Sesion SQL no pudo ser iniciada, desconectando...")
return nil
Endif
ADSCreateSQLStatement( cTable , 2 , hAds )
lSucces := ADSExecuteSQLDirect( cQuery )
Re: Error ADSADT/5005 Error 5005
Vikthor:
Yo uso ADS en forma extensa, y hasta ahora no e tenido ese mensaje de error (espero no tenerlo nunca).
Por lo que entiendo del mensaje, la cadena/string cQuery es muy grande.
Por que no pruebas dividiéndola.
Otra alternativa seria crear procedimientos almacenados, para que realicen la mayor parte de la tarea.
Aca te dejo una funciones que a mi me ayudan en el trabajo:
Atentamente,
Rolando
Cochabamba, Bolivia
Yo uso ADS en forma extensa, y hasta ahora no e tenido ese mensaje de error (espero no tenerlo nunca).
Por lo que entiendo del mensaje, la cadena/string cQuery es muy grande.
Por que no pruebas dividiéndola.
Otra alternativa seria crear procedimientos almacenados, para que realicen la mayor parte de la tarea.
Aca te dejo una funciones que a mi me ayudan en el trabajo:
Code: Select all
STATIC lError
STATIC nError
STATIC cError
//--------------------------//
Function SQL_Error()
return lError
//--------------------------//
Function SQL_nError()
return nError
//--------------------------//
Function SQL_cError()
return cError
//--------------------------//
Function SQL_nErrorSubCode()
return if(nError=0,0,Val(SubStr(cError,At("NativeError",cError)+14,4)))
//--------------------------//
//Ejecuta una comando SQL: INSERT, UPDATE, etc..., al final cierra el area
Function SQL_Command(cSql, nConnect)
local nAreaAnterior := Select()
local lOk := .F.
lError := .F.
nError := 0
cError := ""
DBSelectArea( 0 )
if ADSCreateSQLStatement('SQL_Command', AdsSetFileType(), nConnect)// 1=ADS_NTX, 2=ADS_CDX, 3=ADS_ADT
if ADSExecuteSQLDirect( cSql )
lOk := .T.
else
lError := .T.
nError := AdsGetLastError(@cError)
LogFile( ".\sqlerror.log", { "SQL_Command()", "ADSExecuteSQLDirect: "+cError, cSql} )
if SQL_nErrorSubCode()=2102//Data truncated
lOk := .T.
endif
endif
DbCloseArea()
//AdsCloseSQLStatement()
else
lError := .T.
nError := AdsGetLastError(@cError)
LogFile( ".\sqlerror.log", { "SQL_Command()", "AdsCreateSqlStatement: "+cError} )
endif
DBSelectArea( nAreaAnterior )
Return lOk
//--------------------------//
//Devuelve una consulta/cursor/tabla SQL: Select * from... , no cierra el area al final
Function SQL_Cursor(cSql, cAlias, nConnect)
local lOk := .F.
DEFAULT cAlias := cSAUROGetNewAlias( "SQL" )
if Valtype(cAlias)="N" //el parametro pasado es una area NO un alias
if cAlias > 0
DBSELECTAREA( cAlias ) //Seleccionamos el area especificada
if Used()
cAlias:=Alias(cAlias)
DbCloseArea() //antes de volverla a abrir la cerramos; porque si la dejamos abierta se produce un error
else
cAlias:=cSAUROGetNewAlias( "SQL" )
endif
else
DBSELECTAREA( 0 )
cAlias:=cSAUROGetNewAlias( "SQL" )
endif
else
DBSELECTAREA( Select(cAlias) ) //Si "cAlias" ya esta abierta en un area, la volveremos a abrir en la misma area.
//Si el alias no esta abierta, Select(cAlias) devuelve 0 y seleccionamos el area 0
if Used()
DbCloseArea() //antes de volverla a abrir la cerramos; porque si la dejamos abierta se produce un error
endif
endif
lError := .F.
nError := 0
cError := ""
if ADSCreateSQLStatement(cAlias, AdsSetFileType(), nConnect)// 1=ADS_NTX, 2=ADS_CDX, 3=ADS_ADT
if ADSExecuteSQLDirect( cSql )
lOk := .T.
else
lError := .T.
nError := AdsGetLastError(@cError)
LogFile( ".\sqlerror.log", { "SQL_Cursor()", "ADSExecuteSQLDirect: "+cError, cSql} )
DbCloseArea()
//AdsCloseSQLStatement()
endif
else
lError := .T.
nError := AdsGetLastError(@cError)
LogFile( ".\sqlerror.log", { "SQL_Cursor()", "AdsCreateSqlStatement: "+cError} )
endif
Return lOk
Rolando
Cochabamba, Bolivia
- Vikthor.Thomas
- Posts: 144
- Joined: Thu Jan 02, 2014 1:49 pm
Re: Error ADSADT/5005 Error 5005
Gracias por responder
La consulta que hago es compleja y ADS la resuelve, el error se produce cuando quiero leer el cursor.
La estructura de datos que genera el cursor tiene un campo tipo "Q" longitud 32, decimals 0.
Usando la clase xBrowse, la información que contiene ese campo no se muestra, en cambio usando las clases xBrowse y/o sBrowse obtengo el error descrito.
Alguna sugerencia ?
La consulta que hago es compleja y ADS la resuelve, el error se produce cuando quiero leer el cursor.
La estructura de datos que genera el cursor tiene un campo tipo "Q" longitud 32, decimals 0.
Usando la clase xBrowse, la información que contiene ese campo no se muestra, en cambio usando las clases xBrowse y/o sBrowse obtengo el error descrito.
Alguna sugerencia ?
Re: Error ADSADT/5005 Error 5005
http://devzone.advantagedatabase.com/dz ... _codes.htm
http://nntp-archive.sybase.com/nntp-arc ... ase.com%3E
http://comments.gmane.org/gmane.comp.la ... evel/13772
https://searchcode.com/codesearch/view/4490852/
https://sourcecodebrowser.com/harbour/0 ... ource.html
http://devzone.advantagedatabase.com/dz ... tfield.htm
http://devzone.advantagedatabase.com/dz ... string.htm
http://harbour.sourcearchive.com/docume ... ource.html
http://nntp-archive.sybase.com/nntp-arc ... ase.com%3E
http://comments.gmane.org/gmane.comp.la ... evel/13772
https://searchcode.com/codesearch/view/4490852/
https://sourcecodebrowser.com/harbour/0 ... ource.html
http://devzone.advantagedatabase.com/dz ... tfield.htm
http://devzone.advantagedatabase.com/dz ... string.htm
http://harbour.sourcearchive.com/docume ... ource.html
Last edited by karinha on Tue May 17, 2016 2:59 pm, edited 3 times in total.
João Santos - São Paulo - Brasil
Re: Error ADSADT/5005 Error 5005
5005 AE_INSUFFICIENT_BUFFER
O buffer fornecido é insuficiente para a informação retornada. Os dados podem ter sido truncado.
El tampón suministrado es insuficiente para la información devuelta. Los datos pueden haber sido truncado.
O buffer fornecido é insuficiente para a informação retornada. Os dados podem ter sido truncado.
El tampón suministrado es insuficiente para la información devuelta. Los datos pueden haber sido truncado.
João Santos - São Paulo - Brasil
- Vikthor.Thomas
- Posts: 144
- Joined: Thu Jan 02, 2014 1:49 pm
Re: Error ADSADT/5005 Error 5005
Gracias a todos por su ayuda.
El error lo he resuelto de la siguiente forma :
Haciendo la declaración de la columna como tipo Caracter, de lo contrario el curso crea un tipo de dato VARCHARFOX
Listo el pollo !!!!
Saludos
El error lo he resuelto de la siguiente forma :
Code: Select all
Select cast('2016-01-17' as SQL_DATE) as Fecha, Cast('Inicial' as SQL_CHAR) as Movimiento
Listo el pollo !!!!
Saludos
- Vikthor.Thomas
- Posts: 144
- Joined: Thu Jan 02, 2014 1:49 pm
Re: Error ADSADT/5005 Error 5005
Gracias a todos por su ayuda.
El error lo he resuelto de la siguiente forma :
Haciendo la declaración de la columna como tipo Caracter, de lo contrario el curso crea un tipo de dato VARCHARFOX
Listo el pollo !!!!
Saludos
El error lo he resuelto de la siguiente forma :
Code: Select all
Select cast('2016-01-17' as SQL_DATE) as Fecha, Cast('Inicial' as SQL_CHAR) as Movimiento
Listo el pollo !!!!
Saludos