Page 1 of 1

TXbrowse vacio con ADO

Posted: Thu Oct 25, 2007 11:35 pm
by Armando
Buenas tardes al foro:

Amigos, necesito crear un browse usando TXBrowse y ADO pero cuando el RECORDSET esta vacio, truena :cry:

Me interesa crear el browse a pesar de que el RS este vacio, como hacerlo ?.

Gracias, saludos

Posted: Fri Oct 26, 2007 7:45 am
by Biel EA6DD
Que error te da?.
No se si esto te servira, prueba a comentar la linea RETURN NIL de la clase txBrowse, metodo Paint, en el apartado Paint cols data.

Code: Select all

/*
   Paint cols data
   */

   ::lRefreshOnlyData := .f.

   if ::nLen == 0
      ::EraseData( nFirstRow  )
      //return nil    //Marcado por Biel, asi visualiza correctamente Browses sobre ficheros vacios o scopes vacios sin registros
   endif

Posted: Fri Oct 26, 2007 12:53 pm
by Armando
Biel:

Gracias por tu interes, el error que tira es:

Error Base/1111 Argument error: LEN from Errorsys, Line: 0

Te reproduzco un poco del Error.Log por si ayuda en algo

Code: Select all

Application
===========
   Path and name: C:\SapWinAdo\SapWin.Exe (32 bits)
   Size:   626,176 bytes
   Time from start: 0 hours 0 mins 2 secs 
   Error occurred at: 26/10/2007, 07:49:11
   Error description: Error adodb.recordset:FIELDS/16389  E_FAIL: VALUE
   Args:

Stack Calls
===========
   Called from: win32ole.prg => TOLEAUTO:VALUE(0)
   Called from: XBROWSE.PRG => (b)ADOGENFLDBLK(3041)
   Called from: XBROWSE.PRG => TXBRWCOLUMN:DATAWIDTH(3488)
   Called from: XBROWSE.PRG => TXBRWCOLUMN:ADJUST(3334)
   Called from: XBROWSE.PRG => TXBROWSE:ADJUST(584)
   Called from: XBROWSE.PRG => TXBROWSE:INITIATE(568)
   Called from: XBROWSE.PRG => TXBROWSE:CREATEFROMCODE(506)
   Called from: sapwin6a.prg => SAPWIN6A(132)
   Called from: sapwin.prg => (b)HAZMENU(309)
   Called from: MENU.PRG => TMENU:COMMAND(0)
   Called from: WINDOW.PRG => TWINDOW:COMMAND(0)
   Called from: MDIFRAME.PRG => TMDIFRAME:COMMAND(0)
   Called from:  => TMDIFRAME:HANDLEEVENT(0)
   Called from: WINDOW.PRG => _FWH(0)
   Called from:  => WINRUN(0)
   Called from: WINDOW.PRG => TMDIFRAME:ACTIVATE(0)
   Called from: sapwin.prg => MAIN(129)

System
======
   CPU type:               Intel(R) Pentium(R) 4 CPU 3.00GHz 3000 Mhz
   Hardware memory: 503 megs

   Free System resources: 90 %
        GDI    resources: 90 %
        User   resources: 90 %

   Compiler version: xHarbour build 0.99.71 Intl. (SimpLex)
   Windows version: 5.1, Build 2600 Service Pack 2
Saludos

Posted: Fri Oct 26, 2007 11:57 pm
by sysctrl2
Armando,

lo mas facil creo es poner un array en caso de que el recorset

este vacio, pero desconozco el como hacerlo

con xbrowse, algun guro que nos pueda hechar un hilo,

saludos..

Posted: Sat Oct 27, 2007 2:16 pm
by sjingo
Armando

No uso xbrowse, yo uso wbrowse, y lo que hago es controlar si el recordset NO está vacio muestro _ contrario no , así:

@ 1, 1 LISTBOX oBrw FIELDS if(!ors:EOF .and. !oRs:BOF, oRs:Fields(0):value, )

El principio es el mismo, así que no creo que tengas problemas en aplicarlo en el xbrowse.

Espero te ayude,

Un Saludo

Marcelo Jingo

Posted: Sat Oct 27, 2007 7:19 pm
by Armando
Marcelo:

Gracias por la idea, voy a tirarle por ahí.

Saludos