
Ejemplo del uso del un recorset con xbrowse
- leandro
- Posts: 1744
- Joined: Wed Oct 26, 2005 2:49 pm
- Location: Colombia
- Has thanked: 34 times
- Been thanked: 10 times
- Contact:
Biel Muchas gracias era lo que necesitaba. 

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 24.09 ] [ xHarbour 64 bits) ]
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 24.09 ] [ xHarbour 64 bits) ]
- Armando
- Posts: 3271
- Joined: Fri Oct 07, 2005 8:20 pm
- Location: Toluca, México
- Been thanked: 2 times
- Contact:
César:
Totalmente de acuerdo contigo. Biel me ha aportado mucho y su blog esta en mis favoritos.
Saludos
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
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
- goosfancito
- Posts: 1955
- Joined: Fri Oct 07, 2005 7:08 pm
Re: Ejemplo del uso del un recorset con xbrowse
hola.
estoy incursionando oracle con ado y resulta que siempre recordCount() me devuelve -1, pero esto es falso, tengo datos.
porque pasa esto?
estoy incursionando oracle con ado y resulta que siempre recordCount() me devuelve -1, pero esto es falso, tengo datos.
porque pasa esto?
Re: Ejemplo del uso del un recorset con xbrowse
Goosfancito...
recordcount solo funciona si se cumplen estas 2 condiciones
If ::oRcs:Supports(adApproxPosition) .and. ::oRcs:Supports(adBookmark)
nLastRec:= ::oRcs: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
Espero que te sirva..
Saludos desde Chile
Adolfo
recordcount solo funciona si se cumplen estas 2 condiciones
If ::oRcs:Supports(adApproxPosition) .and. ::oRcs:Supports(adBookmark)
nLastRec:= ::oRcs: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: Select all | Expand
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

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
- goosfancito
- Posts: 1955
- Joined: Fri Oct 07, 2005 7:08 pm
Re: Ejemplo del uso del un recorset con xbrowse
gracias
probe hacerle tambien un movefirst y ahi me dice correctamente el numero. en fin...
probe hacerle tambien un movefirst y ahi me dice correctamente el numero. en fin...
- goosfancito
- Posts: 1955
- Joined: Fri Oct 07, 2005 7:08 pm
Re: Ejemplo del uso del un recorset con xbrowse
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.
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.
- nageswaragunupudi
- Posts: 10721
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 8 times
- Contact:
Re: Ejemplo del uso del un recorset con xbrowse
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
G. N. Rao.
Hyderabad, India
- nageswaragunupudi
- Posts: 10721
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 8 times
- Contact:
Re: Ejemplo del uso del un recorset con xbrowse
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
G. N. Rao.
Hyderabad, India
- goosfancito
- Posts: 1955
- Joined: Fri Oct 07, 2005 7:08 pm
Re: Ejemplo del uso del un recorset con xbrowse
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.
- nageswaragunupudi
- Posts: 10721
- Joined: Sun Nov 19, 2006 5:22 am
- Location: India
- Been thanked: 8 times
- Contact:
Re: Ejemplo del uso del un recorset con xbrowse
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:
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.
#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: Select all | Expand
#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
G. N. Rao.
Hyderabad, India
Re: Ejemplo del uso del un recorset con xbrowse
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. -)
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: Select all | Expand
.....
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
FWH 8.04 2008