Page 1 of 1

Nuevamente auxilio de Browse con ado,

Posted: Mon May 07, 2007 3:18 am
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

Posted: Mon May 07, 2007 6:49 am
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 :-)

Posted: Mon May 07, 2007 4:55 pm
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

Estos son los errores de compilacion con RDDADO

Posted: Mon May 07, 2007 7:01 pm
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

Posted: Mon May 07, 2007 10:07 pm
by Ramon Paredes
Gracias Fernando por tu valiosa ayuda, copiare la libreria y probare,

Saludes
Ramon Paredes

Posted: Tue May 08, 2007 9:40 am
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.