Page 1 of 1

ODbc en listbox no me presenta datos

Posted: Tue Nov 15, 2005 4:53 pm
by fsandoval
Hola a todos, estoy haciendo pruebas con odbc en fwh2.4 pero al hacer el lisbox no me presenta ninguna informacion.

*-----------------------------------------------------------------
FUNCTION BrwEmpresas(oWnd ,oODbc )
LOCAL oDlg,oDlgCtrlCat,oGRID,oFontBrw,oLBX,oParMulti
local aObj := {}
Local oTb
Local oBAltas,oBModificar,oBBorrar, oBSeleccion,obSalir
Local lNEmp


oTb := TDbOdbc():New( "empresas", oODbc)
//oTb := TRecordSet():New(oOdbc,,"Empresas")
oInspect( oTb)

DEFINE FONT oFontBrw Name "Ms Sans Serif" SIZE 0,-11


DEFINE DIALOG oDlg RESOURCE "DLGMANDB" FONT oFontBrw



REDEFINE LISTBOX oLbx ;
FIELDS oTb:FieldGet(1) ,;// Campos que contendr 
oTb:FieldGet( 2 ) ,; // el TBrowse.
oTb:FieldGet( 3 ) , ;
otb:FieldGet( 8 ) ;
ID 101;
FIELDSIZES 50, 310, 250, 150, 100; // Dimensiones de c/campo (en pixeles)
HEADERS "Empresa", "Nombre de la Empresas", "Direccion de la Empresa", "R.F.C.";
FONT oFontBrw ;
ON LEFT DBLCLICK AltasCias( oLbx, .f., oTb) ;
OF oDlg

oLbx:bKeyDown := {|nKey| iif(nKey==13 .OR. nKey==32, (SelEmpresa( oWnd, oTb ),oTb:Destroy() ,oDlg:End()) , ) }

// oTb:SetBrowse( oLbx , .f.)
oLbx:Refresh()
oLbx:lCellStyle := .T. // Solo para FW 2.00 ¢ superior
oLbx:nLineStyle := 3 // Solo para FW 2.00 ¢ superior


REDEFINE BUTTON oBAltas ID 202 OF oDlg ;
ACTION (AltasCias( ID_AALT, oTb ) ,SelEmpresa(oWnd, oTb), oLbx:Refresh() , oTb:Close() ,oDlg:End() , SysRefresh() )

REDEFINE BUTTON oBModificar ID 203 OF oDlg ;
ACTION AltasCias( ID_AMOD, oTb )

REDEFINE BUTTON oBBorrar ID 204 OF oDlg ;
ACTION ( if( MsgYesNo( OemToAnsi( ;
"¨Seguro que quiere borrar la Empresa " + oTb:nombre ) ), ;
DelCias(ID_BAJ, oTb , "empresas" , oTb:nombre ) , oTb:refresh() ) )

REDEFINE BUTTON oBSeleccion ID 201 OF oDlg ;
ACTION (SelEmpresa(oWnd , oTb ), SysRefresh() ,oDlg:End())

REDEFINE BUTTON oBSalir ID 206 OF oDlg ;
ACTION ( oTb:Close(), oDlg:End())

ACTIVATE DIALOG oDlg CENTER
oFontBrw:End()

RETURN( NIL )

saludos y gracias.

Posted: Tue Nov 15, 2005 8:12 pm
by R.F.
No van por ahi los tiros.

1) Necesitas instalar el controlador ODBC para la base de datos a la cual te quieres conectar

2) Necesitas crear un DSN de sistema en el Adminstrador de fuentes de datos ODBC

3) Luego necesitas crear el objecto ODBC y luego un objeto DBODBC.

Yo te aconsejo que mejor utilices OLE DB es mucho mas rapido y menos complicado.

Rene mil gracias por contestar.

Posted: Wed Nov 16, 2005 1:29 pm
by fsandoval
Tengo instalado el odbc de mysql, la conexion la hace , si pongo un msginfo( Tb:Fieldget(2)) me despliega el contenido del campo, mi pregunta es porque al hace el listbox no me presenta nada de informacion , habre la caja del listbos pero no presenta informacion.


Igualmente con los dialogos he tenido muchos problemas, lso checkbos _ por radiobutton, wbrowse , con algunas pantallas no me funcionan al abrir la venta se cierra el sistema.

en fin que ya estoy echo un camote con esto ya le cambio una cosa avanzo algo y me salta otra libre.


saludos.
fernando sandoval ruiz

Te faltan algunas cosas

Posted: Tue Nov 22, 2005 9:15 pm
by Lautaro
Hola,

Para poder usar el browse te faltan algunas cosas como :

olbx:bgotop:={||.....} // Bloque de codigo para ir al primer registro
olbx:bgobottom:={||...} // Bloque de codigo para ir al ultimo registro
olbx:bskip:={|nskip|....} // Bloque de codigo que salta nregistros
olbx:blogiclen:={||...} // bloque de codigo que devuelve la cantida de
//registros de la grilla

No te puedo dar los bloques porque yo uso todbcdirect modificada por mi y no conozco los metodos de tu clase para leer los recordset.

Atte,
Lautaro Moreira

Uso los ODBC nativos de FW

Posted: Sun Dec 04, 2005 7:21 pm
by fsandoval
Gracias lautaro, por contestar uso la clases de fw ,normales con cambios minimos echos por mi.

te agadesco mucho si puedes enviarme de los recordset , o las odbc como tu las tienes y yo integrare _ que echo.

saludos
fernando sandoval ruiz

Usar browse con odbc

Posted: Mon Dec 05, 2005 8:55 pm
by Lautaro
Hola,

Aqui estan los codigos para usar segun la sintaxis de tdbodbc

olbx:bgotop:={||otb:gotop()} // Bloque de codigo para ir al primer
//registro
olbx:bgobottom:={||otb:gobottom()} // Bloque de codigo para ir al
//ultimo registro
olbx:bskip:={|nskip,nold,nsaltos|nold:=otb:recno(),otb:skip(nskip),nsaltos:=nold-otb:recno(),if(nsaltos+nold < 0,nsaltos:=1,nil),if(nsaltos+nold > otb:reccount(),nsaltos:=otb:reccount(),nil),nsaltos}
// Bloque de codigo que salta nregistros
olbx:blogiclen:={||otb:reccount()} // bloque de codigo que devuelve la cantida de
//registros de la grilla


Atte,
Lautaro Moreira