Nuevamente auxilio de Browse con ado,

Post Reply
User avatar
Ramon Paredes
Posts: 215
Joined: Fri Feb 02, 2007 3:38 pm
Location: Managua, Nicaragua

Nuevamente auxilio de Browse con ado,

Post by Ramon Paredes »

Saludes a todo el foro, puse un pedazo de codigo desde donde intento hacer un listbox con un recordset y no hay forma, William me contesto mi mensaje anterior con un ejemplo de RDDADO pero no me funciona y yo necesito toda la potencia porque estoy tratando de migrar a 32 bits sistemas que ya funcionan, les agradeceria toda su aportacion, el codigo es el siguiente :

Public oDlg,oBrw

Public oCon2 := TOLEAUTO():New("adodb.connection")
Public oRecordSet
Public oCommand := TOleAuto():New("adodb.command")
oCon2:Open("DRIVER={MySQL ODBC 3.51 Driver}; SERVER=127.0.0.1 ; DATABASE=Personal1; UID=root; PWD=1234")
oRecordSet := TOleAuto():New("adodb.recordset")
oRecordSet:ActiveConnection(oCon2)
oRecordSet:Source := "SELECT * FROM MAESTRO"
oRecordSet:LockType := adLockOptimistic
oRecordSet:CursorType := adOpenKeyset
oRecordSet:Open()

DEFINE DIALOG oDlg FROM 1, 1 TO 25, 79

@ 1, 1 LISTBOX oBrw FIELDS oRecordSet:Fields(0):Value ,;
oRecordSet:Fields(1):Value ,;
oRecordSet:Fields(2):Value ,;
oRecordSet:Fields(3):Value ,;
oRecordSet:Fields(4):Value ;
HEADERS "Codigo","Nombre ","Salario","Nombre ","Salario";
FIELDSIZES 60,200,60,200,60 ;
SIZE 284, 137 OF oDlg

@154,08 BTNBMP LEFT PROMPT " Agregar" SIZE 50,19 OF oDlg FILENAME "NEW1.BMP" ACTION oDlg:End()
@154,67 BTNBMP LEFT PROMPT " Modificar" SIZE 50,19 OF oDlg FILENAME "CARDF00C.BMP" ACTION oDlg:End()
@154,125 BTNBMP LEFT PROMPT " Borrar" SIZE 50,19 OF oDlg FILENAME "BORRAR1.BMP" //ACTION BorraU(oLbx )
@154,184 BTNBMP LEFT PROMPT " Buscar" SIZE 50,19 OF oDlg FILENAME "FIND.BMP" //ACTION BuscaU(oLbx,3,"Color")
@154,242 BTNBMP LEFT PROMPT " Salir" SIZE 50,19 OF oDlg FILENAME "SALIR3.BMP" ACTION oDlg:End()

ACTIVATE DIALOG oDlg CENTERED
oRecordSet:close()

RETURN NIL

estoy trabajando con FWH 7.01 + xharbour + bcc++

Le estare agradecido cualquier aporte que me saque de este atolladero,


Desde Nicaragua
Ramon Paredes
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Ramón,

Usa el ADORDD e índicanos que es lo que no te funciona ó te da error.

El ADORDD te ahorra mucho trabajo :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
sjingo
Posts: 229
Joined: Sat Mar 18, 2006 3:42 pm
Location: Ibarra-Ecuador

Post by sjingo »

Ramón

El recordset devuelto con la consulta es un arreglo que contiene las filas y columnas con el resultado de la consulta. Por lo tanto se puede usar directamente el recordset para mostrar en el browse. Lo que veo que te hace falta es colocar el listbox:bline:={||} donde se especifica el oRs:MoveNext()........

Personalmente tuve problemas al mostrar en el browse directamente el recordset, y para no hacerme lío lo que hice es pasar todo el recordset a una array, y este último mostrar en el browse.

aDatos := {}

oDatos:MoveFirst()

do while .not. oDatos:EOF()
AADD(aDatos, {oDatos:Fields(0):value,;
oDatos:Fields(1):value,;
oDatos:Fields(2):value,;
oDatos:Fields(3):value})
oDatos:MoveNext()
enddo


En todo caso si lo que quieres es sólo mostrar datos y nada más te aconsejo que hagas lo que hice.

Esperemos que pronto esté completo el ADORDD el cual nos facilitará enormemente el acceso por ADO. Felicitaciones y gracias infinitas a quienes están llevando adelante este trabajo.

Un saludo

Marcelo Jingo
User avatar
Ramon Paredes
Posts: 215
Joined: Fri Feb 02, 2007 3:38 pm
Location: Managua, Nicaragua

Estos son los errores de compilacion con RDDADO

Post by Ramon Paredes »

Antonio,

Al compilar me emite estos errores :

ompiling...
xHarbour Compiler build 0.99.71 (SimpLex)
Copyright 1999-2006, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'personal.prg' and generating preprocessed output to 'personal.ppo'...

100
500
Lines 601, Functions/Procedures 9
Generating C source output to 'personal.c'...
Done.
Borland C++ 5.5 for Win32 Copyright (c) 1993, 2000 Borland
personal.c:
Borland Resource Compiler Version 5.40
Copyright (c) 1990, 1999 Inprise Corporation. All rights reserved.
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_hb_vmProcessSymbolsEx' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_USRRDD_RDDDATA' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_USRRDD_AREADATA' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_HB_TOKENGET' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_USRRDD_ID' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_UR_SUPER_ERROR' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_UR_SUPER_SETFIELDEXTENT' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_UR_SUPER_ADDFIELD' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_UR_SUPER_OPEN' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_UR_SUPER_CLOSE' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
Error: Unresolved external '_HB_FUN_USRRDD_GETFUNCTABLE' referenced from C:\XHARBOUR\LIB\ADORDD.LIB|adordd
* There are errors
*** Process "buildx.bat personal" terminated. Return code=0


tengo la lib de rddado en fwh\lib y en xharbour\lib, el include donde corresponde asi que no se que estoy haciendo mal,

Siempre agradecido por tu atencion y al resto del foro

Ramon Paredes
User avatar
Ramon Paredes
Posts: 215
Joined: Fri Feb 02, 2007 3:38 pm
Location: Managua, Nicaragua

Post by Ramon Paredes »

Gracias Fernando por tu valiosa ayuda, copiare la libreria y probare,

Saludes
Ramon Paredes
R.F.
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Post by R.F. »

Ramon:

El browse de FW no funcionara con un RecordSet de ADO "asi como esta", necesitas reescribir algunas propiedades como son el ::bLogicLen, el ::bSkip y reescribir la funcion Skpper para que vaya sobre recordset.
Saludos
R.F.
Post Reply