Ejemplo del uso del un recorset con xbrowse

Postby leandro » Wed Feb 20, 2008 4: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

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1489
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Postby sysctrl2 » Wed Feb 20, 2008 8: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 "
User avatar
sysctrl2
 
Posts: 981
Joined: Mon Feb 05, 2007 7:15 pm

Postby Armando » 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
User avatar
Armando
 
Posts: 3093
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Ejemplo del uso del un recorset con xbrowse

Postby goosfancito » 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/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: Ejemplo del uso del un recorset con xbrowse

Postby Adolfo » Tue Nov 09, 2010 1:54 am

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

Code: Select all  Expand view

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, 1 TB NVME M.2, 1 TB SSD, GTX 1650
User avatar
Adolfo
 
Posts: 846
Joined: Tue Oct 11, 2005 11:57 am
Location: Chile

Re: Ejemplo del uso del un recorset con xbrowse

Postby goosfancito » Tue Nov 09, 2010 2: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/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: Ejemplo del uso del un recorset con xbrowse

Postby goosfancito » Mon Jan 24, 2011 2: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/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: Ejemplo del uso del un recorset con xbrowse

Postby nageswaragunupudi » Tue Jan 25, 2011 5: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
User avatar
nageswaragunupudi
 
Posts: 10317
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Ejemplo del uso del un recorset con xbrowse

Postby nageswaragunupudi » Tue Jan 25, 2011 5: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
User avatar
nageswaragunupudi
 
Posts: 10317
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Ejemplo del uso del un recorset con xbrowse

Postby goosfancito » 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/
User avatar
goosfancito
 
Posts: 1954
Joined: Fri Oct 07, 2005 7:08 pm

Re: Ejemplo del uso del un recorset con xbrowse

Postby nageswaragunupudi » 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: Select all  Expand view

#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
User avatar
nageswaragunupudi
 
Posts: 10317
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Ejemplo del uso del un recorset con xbrowse

Postby jfafive » Mon Mar 07, 2011 7: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: Select all  Expand view

.....

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
jfafive
 
Posts: 396
Joined: Tue Mar 18, 2008 9:41 pm
Location: Marbella

Previous

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 102 guests