FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Ejemplo del uso del un recorset con xbrowse
Posts: 1816
Joined: Wed Oct 26, 2005 02:49 PM
Ejemplo del uso del un recorset con xbrowse
Posted: Wed Feb 20, 2008 04:40 PM

Biel Muchas gracias era lo que necesitaba. :D

Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Ejemplo del uso del un recorset con xbrowse
Posted: Wed Feb 20, 2008 08:04 PM

Sin duda tenemos que reconocer que los aportes sobre el tema de ADO

en este foro es cada dia mas comun,,

el blog del colega Biel es exelente,,

felicidades Gabriel,

Cesar Cortes Cruz

SysCtrl Software

Mexico



' Sin +- FWH es mejor "
Posts: 3358
Joined: Fri Oct 07, 2005 08:20 PM
Ejemplo del uso del un recorset con xbrowse
Posted: Wed Feb 20, 2008 11:17 PM

César:

Totalmente de acuerdo contigo. Biel me ha aportado mucho y su blog esta en mis favoritos.

Saludos

SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: Ejemplo del uso del un recorset con xbrowse
Posted: Mon Nov 08, 2010 10:56 PM

hola.

estoy incursionando oracle con ado y resulta que siempre recordCount() me devuelve -1, pero esto es falso, tengo datos.

porque pasa esto?

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Re: Ejemplo del uso del un recorset con xbrowse
Posted: Tue Nov 09, 2010 01:54 AM
Goosfancito...

recordcount solo funciona si se cumplen estas 2 condiciones

If ::Supports(adApproxPosition) .and. ::Supports(adBookmark)
nLastRec:= ::RecordCount
Endif

Si no tendras un -1, o un 0... porque ?

Para un cursor FORWARD-ONLY el valor es -1, Si el cursor es ESTATICO o KEYSET, recordcount() te entrega el total de los registros del Recordset. En cambio si es dinamico, ahi tenemos 1 problema, puede devolver - 1 o el total de registros, pero eso depende SOLO DEL "DATA SOURCE", en este caso, ORACLE.

Como solucionas el problema.... ?

SIMPLE..

Create una funcion a la que le pases 1 parametro, el mismo cSelect con el que creas el recordset, esta funcion es muy muy rapida pues es solo un comando, o sea son solo 2 milisegundos

Code (fw): Select all Collapse
Function Contar(cSelect)   
Local nCount:=0
Local oCmd
Local oRsCmd

   oCmd:=TOleAuto():New("ADODB.Command")
   oCmd:CommandText := "select count(*) from " + (cSelect)
   oCmd:CommandType := adCmdText
   oCmd:ActiveConnection:=oCon

    oRsCmd:=oCmd:Execute()
    nCount:=oRsCmd:Fields( 0 ):value

    oRsCmd:Close()

Return nCount



Espero que te sirva..

Saludos desde Chile
Adolfo
;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: Ejemplo del uso del un recorset con xbrowse
Posted: Tue Nov 09, 2010 02:16 PM

gracias

probe hacerle tambien un movefirst y ahi me dice correctamente el numero. en fin...

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: Ejemplo del uso del un recorset con xbrowse
Posted: Mon Jan 24, 2011 02:46 PM

hola.
tengo problemas al visualizar los datos con el xbrowse en esta situacion:
hago un select (ADO-recordset) a una tabla que existe pero no devuelve datos.
Hay manera de que el xbrowse muestre los encabezados asi no existan datos?

gracias.

FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Ejemplo del uso del un recorset con xbrowse
Posted: Tue Jan 25, 2011 05:46 AM
goosfancito wrote:hola.

estoy incursionando oracle con ado y resulta que siempre recordCount() me devuelve -1, pero esto es falso, tengo datos.

porque pasa esto?

Serverside recordsets return -1 as RecordCount.
We need to open recordsets on clientside, by using adUseClient, for browsing. Default is adUseServer.
Regards



G. N. Rao.

Hyderabad, India
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Ejemplo del uso del un recorset con xbrowse
Posted: Tue Jan 25, 2011 05:48 AM
goosfancito wrote:hola.
tengo problemas al visualizar los datos con el xbrowse en esta situacion:
hago un select (ADO-recordset) a una tabla que existe pero no devuelve datos.
Hay manera de que el xbrowse muestre los encabezados asi no existan datos?


gracias.

Even if the table does not contain any records we can browse the empty recordset and xbrowse shows column names with blank data. I have tested this on access and mssql server.
I have not tested this with Oracle.
Regards



G. N. Rao.

Hyderabad, India
Posts: 1956
Joined: Fri Oct 07, 2005 07:08 PM
Re: Ejemplo del uso del un recorset con xbrowse
Posted: Tue Jan 25, 2011 12:06 PM

Even if the table does not contain any records we can browse the empty recordset and xbrowse shows column names with blank data. I have tested this on access and mssql server.
I have not tested this with Oracle.


Podes por favor poner un ejemplo, en mi caso si el Recordset no tiene datos el xBrowse me tira error.

gracias.
FWH 21.02
Harbour 3.2.0dev (r2104281802)
Copyright (c) 1999-2021, https://harbour.github.io/
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Ejemplo del uso del un recorset con xbrowse
Posted: Tue Jan 25, 2011 12:30 PM
If XBrowse is giving error on blank recordsets, there are two possibilities:
#1. Your xbrowse version is very old.
or
#2. Instead of depending on XBrowse's default behavior you may be providing your own codeblocks for navigation or column's bstrdata,etc.

Please test the following simple code:
Code (fw): Select all Collapse
#include 'fivewin.ch'

function Main()

    local oRs

    oRs := <Your function which returns a blank recordset>
    xbrowse( oRs )

return nil

If your FWH is not very old and if the recordset is valid recordset, even if it is blank, xbrowse works perfectly. It shows all column headers and shows blank for data.

If this program errors out, your FWH version could be very old. Even in that case, please post error.log here.
Regards



G. N. Rao.

Hyderabad, India
Posts: 396
Joined: Tue Mar 18, 2008 09:41 PM
Re: Ejemplo del uso del un recorset con xbrowse
Posted: Mon Mar 07, 2011 07:42 PM
Buenas,

Tengo un XBrowse con Recordset. Es algo sencillito, donde lo unico que hago es editar las celdas y
modificar valores directamente.

El caso es que si modifico la celda con un valor distinto al anterior, al pulsar INTRO se guarda y actualiza. Pero si escribo el mismo valor o solo pulso INTRO, se me bloquea.

Aquí les dejo un trozo de mi codigo pues yo no he encontrado donde puede estar el problema.

Un saludo y gracias por adelantado. -)
Code (fw): Select all Collapse
.....

REDEFINE XBROWSE oXbrB ;
   RECSET oRsB ID ID_XBRCLI OF oDlgSC AUTOSORT

oXbrB:nColDividerStyle    := LINESTYLE_LIGHTGRAY
oXbrB:nRowDividerStyle    := LINESTYLE_LIGHTGRAY

oXbrB:nMarqueeStyle       := MARQSTYLE_HIGHLROW
oXbrB:bClrSelFocus        := { || { CLR_WHITE, CLR_BLUE } }
oXbrB:bClrStd             := { || { CLR_BLACK, CLR_YELLOW } }
oXbrB:lColDividerComplete := .t. 
oXbrB:lAllowRowSizing     := .f.
oXbrB:lAllowColSwapping   := .t.
oXbrB:lAllowColHiding     := .f.
oXbrB:lHScroll            := .f.
oXbrB:lVScroll            := .t.
oXbrB:l2007               := .t.
oXbrB:lHeader             := .t.
oXbrB:nRowHeight          := 30

.....

ACTIVATE DIALOG oDlgSC CENTER ; 
   ON INIT ( oDlgSC:lHelpIcon := .f.,;
             oXbrB:aCols[2]:nEditType := 1,; // donde las columnas 2 y 3 son las editables.
             oXbrB:aCols[3]:nEditType := 1,;
             oXbrB:aCols[1]:nWidth    := 40 ) ;
   VALID !( GetKeyState(27) )
Javier,

FWH 8.04 2008

Continue the discussion