Mostrar base .MDB

Mostrar base .MDB

Postby acuellar » Thu Aug 19, 2010 12:13 pm

Hola a todos

Necesito mostrar el contenido de un base .MDB, en el foro he encontrado un ejemplo de Patricio, pero me sale error en la ejecución:
Code: Select all  Expand view

#include "FiveWin.ch"
#include "xBrowse.ch"
*
FUNCTION Main()
 LOCAL oWnd,oRSet, oBrw

TRY
 oConnection := CreateObject( "ADODB.Connection" )
 CATCH oError
   MsgStop( "No se ha podido crear el 'ADODB.Connection' "+ oError:Description )
   RETURN
END

sConnectionString := "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\SISTEMAS\DATA\RELOJ.MDB; Persist Security Info=False"

TRY
 oConnection:Open( sConnectionString )
CATCH oError
   MsgStop( "No se ha podido conectar con la base "+ oError:Description )
   RETURN
END

TRY
    oRSet := CreateObject( "ADODB.RecordSet" )
CATCH oError
   MsgStop( "No se ha podido crear el RECORDSET"+ oError:Description )
   RETURN
END

oRSet:CursorLocation   := adUseClient  //Error en ejecucion
oRSet:LockType         := adLockReadOnly //Error en ejecucion
oRSet:CursorType       := adOpenForwardOnly //Error en ejecucion
oRSet:ActiveConnection( oConnection )

sSQLQuery := "SELECT * FROM TABLA"
 
TRY
    oRSet:Open( sSQLQuery, oConnection )
CATCH oError
   MsgStop( "No se ha podido crear el consulta SQL "+ oError:Description )
   RETURN
END

oRSet:MoveFirst()
DO WHILE !oRSet:EOF
    if oRSet:Fields(0):Value = "xxx"
        //BLA..
    endif
   oRSet:MoveNext()
ENDDO
oRSet:Close()

Return Nil

 

Descargar la base desde: http://200.58.169.10/files/reloj.rar

Gracias por la aydua

Saludos

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1599
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Mostrar base .MDB

Postby Daniel Garcia-Gil » Thu Aug 19, 2010 12:16 pm

Adhemar

Cual error?
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Mostrar base .MDB

Postby acuellar » Thu Aug 19, 2010 12:19 pm

Gracias Daniel por contestar

Sale el siguiente error: No existe la variable: adUseClient

Saludos

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1599
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Mostrar base .MDB

Postby Daniel Garcia-Gil » Thu Aug 19, 2010 12:48 pm

Adhemar

Te falta el include de ado

#include "ado.ch"
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Mostrar base .MDB

Postby acuellar » Thu Aug 19, 2010 12:52 pm

Gracias Daniel

Ahora sale otro error:

No se ha podido crear el consulta SQL DISP_E_UNKNOWNNAME

Saludos

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1599
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Mostrar base .MDB

Postby Daniel Garcia-Gil » Thu Aug 19, 2010 1:01 pm

Adhemar

Al paracer TABLA no existe.. verificaste el nombre de tabla en el .MDB ??
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Mostrar base .MDB

Postby acuellar » Thu Aug 19, 2010 1:06 pm

Daniel

En realidad, no se que nombre tengan las tablas. No se como ver la estructura

Saludos

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1599
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Mostrar base .MDB

Postby Daniel Garcia-Gil » Thu Aug 19, 2010 1:17 pm

Adhemar

abre el archivo que publicaste... alli te aparecen todas las tablas
User avatar
Daniel Garcia-Gil
 
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 pm
Location: Isla de Margarita

Re: Mostrar base .MDB

Postby Patricio Avalos Aguirre » Thu Aug 19, 2010 1:30 pm

Hola

Si es el sistema de Horas BiaCaptor, esto te puede servir

Code: Select all  Expand view
sSQLQuery := "SELECT * FROM ATTPARAM"
TRY
    oRecordSet:Open( sSQLQuery, oConnection )
CATCH oError
   MsgStop( "No se ha podido crear el RECORDSET"+ oError:Description )
   RETURN
END

oRecordSet:MoveFirst()            // probably redundant
DO WHILE !oRecordSet:EOF
    if oRecordSet:Fields(0):Value = "MinsOutOverTime"
        nMinsOutOverTime := Val(oRecordSet:Fields(2):Value)
        exit
    endif
   oRecordSet:MoveNext()
ENDDO
oRecordSet:Close()


sSQLQuery := "SELECT * FROM USERINFO"
TRY
    oRecordSet:Open( sSQLQuery, oConnection )
CATCH oError
   MsgStop( "No se ha podido crear el RECORDSET"+ oError:Description )
   RETURN
END

dbCreate( "usrpaso", {{ "cod", "c", 5, 0 },;
                             { "nom", "c", 20,0 },;
                             { "dep", "n", 5, 0 },;
                             { "uid", "n", 5, 0 }            }, "DBFCDX" )

USE usrPaso ALIAS "USR" NEW VIA "DBFCDX"
INDEX ON field->cod TAG "COD" TO usrpaso
INDEX ON field->DEP TAG "DEP" TO usrpaso
set index to usrpaso

// navigate through recordset
oRecordSet:MoveFirst()            // probably redundant
DO WHILE !oRecordSet:EOF
    if oRecordSet:Fields(19):Value = 0

        if cCodUsr = NIL .or. cCodUsr = oRecordSet:Fields(1):Value
            Usr->( dbAppend() )
            Usr->Uid := oRecordSet:Fields(0):Value
            Usr->cod := oRecordSet:Fields(1):Value
            Usr->nom := oRecordSet:Fields(3):Value
            Usr->dep := oRecordSet:Fields(16):Value
        endif

    endif
   oRecordSet:MoveNext()
ENDDO

oRecordSet:Close()

sSQLQuery := "SELECT * FROM DEPARTMENTS"
TRY
    oRecordSet:Open( sSQLQuery, oConnection )
CATCH oError
   MsgStop( "No se ha podido crear el RECORDSET DEPARTMENTS"+ oError:Description )
   RETURN
END

dbCreate( "deppaso", {{ "depid",  "C", 5, 0 },;
                             { "depnom", "c", 30,0 },;
                             { "depsup", "n", 5, 0 }     }, "DBFCDX" )

USE depPaso ALIAS "DEP" NEW VIA "DBFCDX"

oRecordSet:MoveFirst()
DO WHILE !oRecordSet:EOF
    dep->( dbAppend() )
    dep->depid :=  STR(oRecordSet:Fields(0):Value,5)
    dep->depnom := oRecordSet:Fields(1):Value
    dep->depsup := oRecordSet:Fields(2):Value
   oRecordSet:MoveNext()
ENDDO

oRecordSet:Close()
dbCreate( "detpaso", {{ "userid", "N", 5, 0 },;
                             { "Nombre", "C",20,0 },;
                             { "fecha", "d", 8,0 },;
                             { "Entra1", "c", 5, 0},;
                             { "entrada1", "c", 5,0 },;
                             { "Sale1", "c", 5, 0},;
                             { "salida1", "c", 5,0 },;
                             { "Entra2", "c", 5, 0},;
                             { "entrada2", "c", 5,0 },;
                             { "Sale2", "c", 5, 0},;
                             { "salida2", "c", 5,0 },;
                             { "Extra", "c", 5,0 }                           }, "DBFCDX" )

USE detPaso ALIAS "detalle" NEW VIA "DBFCDX"
INDEX ON str(field->userid,5) + DTOS(FIELD->FECHA) TAG "PASO" TO detpaso
set index to detpaso
 



Image

Uploaded with ImageShack.us
Saludos
Patricio

__________________________________________________________________
Version: Harbour 3.2.0dev (r1307082134),Compiler: Borland C++ 5.8.2 (32-bit)
PCode version: 0.3, FWH 13.2
http://www.sialm.cl
User avatar
Patricio Avalos Aguirre
 
Posts: 1060
Joined: Fri Oct 07, 2005 1:56 pm
Location: La Serena, Chile

Re: Mostrar base .MDB

Postby acuellar » Thu Aug 19, 2010 3:41 pm

Patricio

Efectivamente es de un sistema de Reloj pero no del que me indicas, se trata del sistema V2008 SDK Version
Para Reloj biométrico.

Gracias por la ayuda

Saludos

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1599
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Mostrar base .MDB

Postby juan carlos bellucci » Tue Aug 24, 2010 1:40 am

Code: Select all  Expand view
//--------------------------------------------------------------------------//
// Modulo de Creacion de Base de Datos y Tablas
// Autor Bellucci Juan Carlos Mat 35.450 Escobar Buenos Aires
//--------------------------------------------------------------------------//

  #Include "Fivewin.ch"
  #Include "xbrowse.ch"
  #Include "Ado.ch"
  //--> Var
  Static x
  Static m1     := {}
  Static aArray := {}


//--------------------------------------------------------------------------//
  Function Main()
           Local oCone
//-------------------------------------------------------------------//
            oCone:=tOleAuto():new("ADODB.connection")
            oCone:open("Provider= MicroSoft.Jet.OLEDB.4.0;Data Source=.\Bases\Archivo.mdb;")
           //--------------------------------------------------------------//
            If Empty(oCone)
               MsgAlert(" No se Pudo Establecer la Conexion Con La Base De Datos..","Atencion")
               Return(Nil)
            EndIf
          //--------------------------------------------------------------//
           Articulo( oCone )
   Return( Nil )
//--------------------------------------------------------------------------//
  Function Articulo( oCone )
           Local oForma
           Local oFont1
           Local oBrw
           Local nFor := 0
           Local oCol
           Local aCols := {}
           Local oBar
           Local oStLista
           Local oStModi
           
           PRIVATE m1[6] //--> Matriz para los Gets.
           //PRIVATE aArray := { { ( m1[1] := Space(08)), (m1[2] := Space(20)), ;
           //                      ( m1[3] := Space(30)), (m1[4] := Space(10)), ;
           //                      ( m1[5] := Space(20)),( m1[6] := Space(10)) } }

           //--
             MENU oStLista POPUP 2007
                  MENUITEM "Listado &General de Precios " ;
                           RESOURCE "Impre16"             ;
                           MESSAGE " Listado Genenral de Precios "  
                  //--
                    Separator
                  //--
                  MENUITEM "Listado &Parcial de Precios"
                  //--        
                    Separator
                  //--      
                   MENUITEM "Listado de Precios Por &Rubro"
                  //--                                    
                    Separator                              
                  //--
                  MENUITEM "Listado de Existencias de Stock"
                  //--                                    
                    Separator                              
                  //--
                  MENUITEM "Listado de Faltantes de Stock"
                   //--    
             ENDMENU  
           //--
               MENU oStModi POPUP 2007
                  MENUITEM "Modificacion &General de Precios "
                  //--
                    Separator
                  //--
                   MENUITEM "Modificar Precios Por &Rubro"
                  //--                                    
                    Separator                              
                  //--
                  MENUITEM "Modificar Ganancias Por Fuera de Estacion "
             ENDMENU        
           //--        
           CargaStock(oCone)

               DEFINE FONT oFont1 NAME GetSysFont() SIZE 0,-14
               DEFINE WINDOW oForma FROM 97,12 TO 702,1014 PIXEL TITLE "Archivo Maestro de Articulos"
                     //--
                       oForma:SetFont(oFont1)
                       Set Message to ("") Of oForma 2007 FONT oFont1
                     //--
                       DEFINE BUTTONBAR oBar _3D SIZE 60,40 OF oForma 2007
                     //--
                       DEFINE BUTTON RESOURCE "SaleA","SaleB" OF oBar  ;
                              TOOLTIP " Salir "                        ;
                              NOBORDER MESSAGE "Salir de Stock"        ;
                              ACTION oForma:End()
                     //--
                       DEFINE BUTTON RESOURCE "Nuevo"    OF oBar       ;
                              TOOLTIP " Actualizar "                   ;
                              NOBORDER MESSAGE "Actualizar Archivo de Stock"        ;
                              ACTION ( ActuStock(oCone,;
                                       aArray[ oBrw:nArrayAt,2 ] ),;
                                       CargaStock(oCone),;
                                       oBrw:Refresh()   ,;
                                       oForma:Refresh()   ,;
                                       oForma:UpDate() )
                     //--
                      DEFINE BUTTON RESOURCE "Editar" OF oBar GROUP             ;
                              TOOLTIP " Modificaciones de Precios "             ;
                              NOBORDER MESSAGE "Modificaciones de Precios"      ;
                              MENU oStModi
                     //--
                       DEFINE BUTTON RESOURCE "Impre" OF oBar GROUP             ;
                              TOOLTIP " Listados y Reportes "                   ;
                              NOBORDER MESSAGE "Listados y Reportes de Stock"   ;
                              MENU oStLista
                             
                     //--
                       oBrw := TXBrowse():New( oForma )
                       oBrw:nTop     :=  1
                       oBrw:nLeft    :=  1
                       oBrw:nBottom  := 546
                       oBrw:nRight   := 995

                       oBrw:nColDividerStyle    := LINESTYLE_BLACK
                       oBrw:nRowDividerStyle    := LINESTYLE_BLACK
                       oBrw:lFooter             := .t.
                       oBrw:nFooterLines        := 1
                       oBrw:nHeaderLines        := 2
                       oBrw:nMarqueeStyle       := MARQSTYLE_HIGHLROW //---// Estilo de Barra de Seleccion
                       oBrw:bClrSelFocus        := {|| { CLR_WHITE, nRGB( 000, 100, 255 ) } }  //--> color de la barra de selecion.
                       oBrw:nRowHeight := 20  //--> Altura de las Lineas del xBrowse.
                       oBrw:lHScroll := .T.   //--> Scroll Horizontal.
                       oBrw:lVScroll := .T.   //--> Scroll Horizontal.
                     **--------**
                       oBrw:SetArray( aArray, .T. )
                     **--------**
                      // oBrw:CreateFromResource( 161 )
                       oBrw:CreateFromCode()
                    **--------**
                    // oBrw:bKeyDown:={|nKey| IIF(nKey=VK_RETURN, ( Carga( oBrw, aArray )),.t. ) }
                    // oBrw:bKeyDown:={|nKey| IIF(nKey=VK_RETURN, ( MsgAlert( aArray[oBrw:nArrayAt,1 ] )),.t. ) }
                    //  oBrw:bLDblClick := { || ( CarregaGets(), vTarefa:= "A", lAtvBtn := .T., oBrw:Disable(), oForma:UpDate() ) }
                    *****--- Columnas ---*****
                    //--
                      oBrw:aCols[ 1 ]:cHeader := "Ide Art"
                      oBrw:aCols[ 1 ]:nDataStrAlign := AL_CENTER
                      oBrw:aCols[ 1 ]:nHeadStrAlign := AL_CENTER
                    //--
                      oBrw:aCols[ 2 ]:cHeader := "Codigo"
                      oBrw:aCols[ 2 ]:nDataStrAlign := AL_LEFT
                      oBrw:aCols[ 2 ]:nHeadStrAlign := AL_LEFT
                    //--
                      oBrw:aCols[ 3 ]:cHeader := "Detalle"
                      oBrw:aCols[ 3 ]:nDataStrAlign := AL_LEFT
                      oBrw:aCols[ 3 ]:nHeadStrAlign := AL_LEFT
                    //--
                      oBrw:aCols[ 4 ]:cHeader := "Existencia"
                      oBrw:aCols[ 4 ]:nDataStrAlign := AL_RIGHT
                      oBrw:aCols[ 4 ]:nHeadStrAlign := AL_RIGHT
                    //--
                      oBrw:aCols[ 5 ]:cHeader := "Rubro"
                      oBrw:aCols[ 5 ]:nDataStrAlign := AL_LEFT
                      oBrw:aCols[ 5 ]:nHeadStrAlign := AL_LEFT
                    //--
                      oBrw:aCols[ 6 ]:cHeader := "Precio"
                      oBrw:aCols[ 6 ]:nDataStrAlign := AL_RIGHT
                      oBrw:aCols[ 6 ]:nHeadStrAlign := AL_RIGHT
                    //--
                      FOR nFor := 1 to Len( aCols )
                          oBrw:aCols[ nFor ]:lAllowSizing := .T.
                          oBrw:aCols[ nFor ]:bRClickHeader = { || nil }
                      NEXT
                    //--

                       oForma:oClient := oBrw
                     //--
               ACTIVATE WINDOW oForma VALID Salir()
               oFont1:End()


  Return( Nil )
//--------------------------------------------------------------------------//
// Salir de Stock
//--------------------------------------------------------------------------//
  Static Function Salir()
         Local nConta := Len(aArray)
         Local I
         For I := 1 To nConta
             ADEL(aArray , I )
             aSize(aArray, Len(aArray) - 1 )
         Next I
         GlobalFree()
         ResAllFree()
         Release All

  Return( .t. )
//--------------------------------------------------------------------------//
  Static Function CargaStock(oCone)
         Local oError
         Local Data1
         Local nRegi  := 0
         Local A      := 0
         Local xNume  := ""
         Local nConta := Len(aArray)
         Local I
         For I := 1 To nConta
             ADEL(aArray , I )
             aSize(aArray, Len(aArray) - 1 )
         Next I


           //--------------------------------------------------------------//
             Data1:=tOleAuto():New("ADODB.RecordSet")
             Data1:CursorLocation   := adUseClient
             Data1:CursorType       := adOpenDynamic
             Data1:LockType         := adLockOptimistic
             Data1:ActiveConnection := oCone
             Data1:Source           := "SELECT * FROM STOCK"
           //--------------------------------------------------------------//
             TRY
               Data1:Open()
               CATCH oError
               MsgStop( "No se ha podido abrir la Tabla de Stock !"," Atencion  ")
               Return(Nil)
             END
           //--------------------------------------------------------------//
             If Data1:RecordCount > 0
                nRegi := Data1:RecordCount
                Data1:MoveFirst()
                For A := 1 To nRegi
                   m1[1] := StrZero(Data1:Fields("Numero"):Value,8)
                   m1[2] := SubStr(Data1:Fields("Codigo"):Value+Space(20),1,20)
                   m1[3] := SubStr(Data1:Fields("Detalle"):Value+Space(30),1,30)
                   m1[4] := Str(Data1:Fields("Actual"):Value,10,2)
                   m1[5] := SubStr(Data1:Fields("Rubro"):Value+Space(20),1,20)
                   m1[6] := Str(Data1:Fields("Venta"):Value,10,2)
                   AADD( aArray, { m1[1], m1[2], m1[3], m1[4], m1[5], m1[6] } )
                   Data1:MoveNext()

               Next A
               Data1:Close()
               aSort(aArray,,,{|x,y| x[1] < y[1]})
           Else
               m1[1] := Space(08)
               m1[2] := Space(20)
               m1[3] := Space(30)
               m1[4] := Space(10)
               m1[5] := Space(20)
               m1[6] := Space(10)
               AADD( aArray, { m1[1], m1[2], m1[3], m1[4], m1[5], m1[6] } )
               aSort(aArray,,,{|x,y| x[1] < y[1]})
           EndIf
         //--
  Return( Nil )
//--------------------------------------------------------------------------//


este codigo funciona bien Probalo
juan carlos bellucci
 
Posts: 115
Joined: Sat Mar 07, 2009 9:36 pm
Location: Argentina

Re: Mostrar base .MDB

Postby acuellar » Tue Aug 24, 2010 11:41 am

Gracias a todos por la ayuda

Se puede modificar o eliminar registro de la base .MDB?
Cómo llegar a un registro que cumpla con una condición?

Saludos


Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1599
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia

Re: Mostrar base .MDB

Postby sysctrl2 » Tue Aug 24, 2010 7:20 pm

una base de datos de acces acepta instrucciones basicas de sql, como ,
insert,update,delete, etc.
no le veo problema para darle mantenimiento a sus registros.
saludos..
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 982
Joined: Mon Feb 05, 2007 7:15 pm

Re: Mostrar base .MDB

Postby wmormar » Tue Aug 24, 2010 7:41 pm

LA manera de adicionar, eliminar, modificar una fila en una tabla de access (MDB) es con las instrucciones de SQL

INSERT INTO <tabla> (field1, field2, field2) (dato1, dato2, dato3)
UPDATE <tabla> (field1, field2, field2) (dato1, dato2, dato3) WHERE field1 = 1234
DELETE <tabla> WHERE field1 = 1234
William, Morales
Saludos

méxico.sureste
User avatar
wmormar
 
Posts: 1074
Joined: Fri Oct 07, 2005 10:41 pm
Location: México

Re: Mostrar base .MDB

Postby acuellar » Tue Aug 24, 2010 8:29 pm

Gracias William

Haré pruebas

Saludos

Adhemar
Saludos,

Adhemar C.
User avatar
acuellar
 
Posts: 1599
Joined: Tue Oct 28, 2008 6:26 pm
Location: Santa Cruz-Bolivia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 41 guests