FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour ORACLE Y ADO
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
ORACLE Y ADO
Posted: Tue Dec 25, 2007 09:29 AM

Llevo varios dias intentando sacar un browse desde una DB-Oracle, pero la cosa se resiste. Consigo sin problemas, abrir la DB, descargar el RecordSet, pero despues el browse sale vacio. Acompa帽o el c贸digo por si alguien me puede dar una ayudita.

include "Fivewin.ch"

FUNCTION Main()
local cHost := '127.0.0.1'
local cUser := 'hr'
local cPass := 'hr'
local oRs, oBrw, oDlg
local oCon := TOLEAuto():New('ADODB.Connection')
// conexion a Oracle
TRY
oCon:Open("Provider='MSDAORA.1';" + ;
"Data Source= " + cHost + ";" + ;
"User ID=" + cUser + ";" + ;
"Password=" + cPass + ";" )
CATCH
msgstop("Error conexi贸n ADODB")
quit
END

// recordset
oRs := TOleAuto():New("adodb.recordset")
oRs:CursorLocation := 2 // adUseServer adUseClient
oRs:LockType := 3 // adLockOptimistic
oRs:CursorType := 1 // adOpenKeyset
oRs:Source := "Select * from regions"
oRs:ActiveConnection(oCon)
TRY
oRs:Open( )
CATCH
msgstop("Error conexi贸n RecordSet")
quit
END

oRs:MoveFirst()

IF oRs:EOF .or. oRs:BOF
msgstop ("Fichero vacio")
quit
ENDI

DEFINE DIALOG oDlg ;
TITLE "Indice de Datos" ;
FROM 0, 0 TO 25, 99

@ 1, 2 LISTBOX oBrw FIELDS ;
oRs:Fields("REGION_ID"):value, ;
oRs:Fields("REGION_NAME"):value ;
HEADERS "N煤mero","Regi贸n" ;
FIELDSIZES 80,150 ;
SIZE 356,135 OF oDlg

oBrw:bLogicLen = { || oRs:RecordCount }
oBrw:bGoTop = { || oRs:MoveFirst() }
oBrw:bGoBottom = { || oRs:MoveLast() }
oBrw:bSkip = { | nSkip | Skipper( oRs, nSkip ) }
oBrw:cAlias = "ARRAY"

ACTIVATE DIALOG oDlg CENTER

oRs:CLOSE()
oCon:CLOSE()

RETURN nil

STATIC FUNCTION SKIPPER( oRs, nSkip )
LOCAL nRec := oRs:AbsolutePosition

oRs:Move( nSkip )

IF oRs:EOF; oRs:MoveLast(); ENDIF
IF oRs:BOF; oRs:MoveFirst(); ENDIF

RETURN oRs:AbsolutePosition - nRec

Un saludo



Manuel
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
ORACLE Y ADO
Posted: Tue Dec 25, 2007 10:26 AM

Manuel,

Esto quiz谩s pueda servirte:

http://fivetechsoft.com/forums/viewtopic.php?t=9286

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 711
Joined: Thu Oct 06, 2005 09:57 PM
ORACLE Y ADO
Posted: Tue Dec 25, 2007 10:41 AM
Antonio, muchas gracias. Ya veo que hasta el 25/12 est谩s al pi茅 del ca帽贸n.

Al final la soluci贸n la he encontrado en el chileno metaldrummer:

http://fivetechsoft.com/forums/viewtopi ... ght=oracle

donde indica claramente:

[quote=]
Un detalle muy importante:
Si no expecifico:
C贸digo:
oDatos:CursorLocation := adUseClient
Sencillamente oDatos:RecordCount devuelve igual -1.


Ese era el error. Yo estoy ejecutando la aplicaci贸n en el mismo equipo donde tengo instalado Oracle y pensaba que tenia que atacarlo como servidor y es como cliente.

De nuevo, muchas gracias.
Un saludo



Manuel
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
ORACLE Y ADO
Posted: Tue Dec 25, 2007 10:44 AM

Bien! :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com

Continue the discussion