////////////////////////////////////////////////////////////////////////////
// //
// Modulo_____: Principal //
// Autor______: Ing.Bellucci Juan Carlos //
// Bases______: Acces xxx.mdb //
// Tipo_______: Orientado a Objetos //
// //
////////////////////////////////////////////////////////////////////////////
#Include "Fivewin.ch"
#Include "Ado.ch"
#include 'FILEIO.CH'
Static oCone
//////////////////////////////////////////////////////////////////
// Ejemplo de uso
//////////////////////////////////////////////////////////////////
// xBase = nombre de su base de datos que elija
// CreaBases("xBase") // se creara una base.mdb de datos en la carpeta data
// Si se trata de una base que tiene pasword
//
// oCone = Conexion tipo dsn para la base
// AbreBase funcion de 2 parametros
// 1 = nombre de la base
// 2 = clave de no existir colocar ""
// oCone := AbreBase("Caja","rm1952" )
// Una vez abierta la base se crean todas las tablas que desee pero
// en forma individual obvio
// CreaArticulos( oCone ) // creamos la tabla de articulos
// Esta funcion ademas permite abrir una base existente y agregar o
// borrar tablas. solo hay que colocar la base en la carpeta data.
// agregar al su sistema el modulo funci.c de libre distribucion.
//--------------------------------------------------------------------------//
// Method Principal( )
//--------------------------------------------------------------------------//
Function Main()
Local Clave := "su_clave"
Local cBase := "Archivo"
Local Data1
/////////////////////////////////////////////////////////
// Primer paso Crear la Base
/////////////////////////////////////////////////////////
CrearLaBase(cBase) // esta funcion crea la base si no existe
/////////////////////////////////////////////////////////
// Segundo paso Abrir la Base para su uso
/////////////////////////////////////////////////////////
oCone := AbreBase(cBase,Clave )
If Empty( oCone )
MsgAlert(" No se Pudo Abrir la Base de Datos..."," Error ")
Return( Nil )
EndIf
/////////////////////////////////////////////////////////
// Tercer Crear las tablas para su uso
/////////////////////////////////////////////////////////
CreaArticulos( oCone ) // aqui puede poner todas tablas
// que desea crear.
/////////////////////////////////////////////////////////
// Cuarto paso Abrir la tabla para su uso
/////////////////////////////////////////////////////////
Data1 := Usar(oCone,"Select * from Articulos where "+;
"Borrado <> 'S' Order by Articulo ;"
If !Empty( Data1 )
xBrowse( Data1 )
Data1:Close()
EndIf
/////////////////////////////////////////////////////////
// Quinto Cierre la Conexion
/////////////////////////////////////////////////////////
oCone:Close() // al finalizar el programa
/////////////////////////////////////////////////////////
Return( Nil )
//--------------------------------------------------------------------------//
//--------------------------------------------------------------------------//
// Method CreaArticulos( oCone )
//--------------------------------------------------------------------------//
Static Function CreaArticulos( oCone )
Local Data1
Local oError
Data1:=tOleAuto():New("ADODB.RecordSet")
Data1:CursorLocation := adUseClient
Data1:CursorType := adOpenDynamic
Data1:LockType := adLockOptimistic
Data1:ActiveConnection := oCone
Data1:Source := "CREATE TABLE ARTICULOS(" + ;
" Registro COUNTER, " + ;
" Articulo TEXT(100), " + ;
" Fecha DATE, " + ;
" Descripcion TEXT(100)," + ;
" Marca TEXT(50), " + ;
" Color TEXT(50), " + ;
" Cantidad SINGLE, " + ;
" Bajas SINGLE, " + ;
" Valor SINGLE, " + ;
" Proveedor TEXT(100), " + ;
" Rubro TEXT(30), " + ;
" Borrado TEXT(1), " + ;
" Operador TEXT(30), " + ;
" OFecha DATE, " + ;
" OHora TEXT(5) )"
TRY
Data1:Open()
CATCH oError
Return( "" ) // Solo si Hay error
END
//-------------------//
Return( Nil )
//--------------------------------------------------------------------------//
// Esta Informacion esta a disposicion del foro de Fivewin.
// en agradecimiento a la gente de Fivetech que tanto hace por nosotros.
// Desde Argentina Buenos Aires Ciudad de Escobar Juan Carlos.
//--------------------------------------------------------------------------//
/////////////////////////////////////////////////////////////////////////////////////////////////////////
// este es el modulo funci.prg que debe ser compilado por separado.
/////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////
// //
// Modulo_____: Funci.prg //
// Autor______: Bellucci Juan Carlos //
// Bases______: Acces xxx.mdb //
// Tipo_______: Orientado a Objetos //
// //
////////////////////////////////////////////////////////////////////////////
#Include "Fivewin.ch"
#Include "Ado.ch"
#include 'FILEIO.CH'
//--------------------------------------------------------------------------//
// Este Modulo debe compilarse tal como esta he incluir en el proyecto
//--------------------------------------------------------------------------//
//--------------------------------------------------------------------------//
//--------------------------------------------------------------------------//
// Crea Base de Datos
//--------------------------------------------------------------------------//
Function CreaBases(cBase)
Local oCatalog
Local oTable
Local oColumn
Local oKey
cBase := Alltrim(cBase)+".mdb"
lMKDir("Data")
If !File(".\Data\"+cBase)
oCataLog := CreateObject("ADOX.Catalog")
oCataLog:Create("Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Engine Type = 4 ;Data Source=.\Data\"+cBase)
EndIf
Return( nil )
//--------------------------------------------------------------------------//
// Method Abre base de datos
//--------------------------------------------------------------------------//
Function AbreBase( cBase, cPass )
Local oBase
Local oErr
cBase := ".\Data\"+Alltrim(cBase)+".mdb"
If !File(cBase)
MsgStop("Ha Ocurrido Un Error...No Se Esta La Base de Datos..."," Error " )
Return(Nil)
EndIf
Try
oBase := CreateObject( "ADODB.Connection" )
oBase:ConnectionString := "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="+cBase+";Pwd=" + cPass
oBase:Open()
CATCH oErr
MsgAlert(" No se Pudo Establecer la Conexion Con La Base De Datos..","Atencion")
Return(Nil)
END
Return( oBase )
//--------------------------------------------------------------------------//
// Method AbreTabla()
//--------------------------------------------------------------------------//
Function Usar(oCone,Consulta)
Local xData,oError
//--------------------------------------------------------------//
xData:=tOleAuto():New("ADODB.RecordSet")
xData:CursorLocation := adUseClient
xData:CursorType := adOpenDynamic
xData:LockType := adLockPessimistic
xData:ActiveConnection := oCone
xData:Source := Consulta
//--------------------------------------------------------------//
TRY
xData:Open()
CATCH oError
Return(Nil)
END
//--------------------------------------------------------------//
Return( xData )
//--------------------------------------------------------------------------//
//Method Ir Al Primer Registro
//--------------------------------------------------------------------------//
Function Primero(oData)
If oData:RecordCount > 0
oData:MoveFirst()
EndIf
Return( oData )
//--------------------------------------------------------------------------//
// Method Ir Al Registro Anterior
//--------------------------------------------------------------------------//
Function Anterior(oData)
If oData:RecordCount > 0
oData:MovePrevious()
If oData:Bof()
oData:MoveFirst()
EndIf
EndIf
Return( oData )
//--------------------------------------------------------------------------//
// Method Ir Al Registro Siguiente
//--------------------------------------------------------------------------//
Function Siguiente(oData)
If oData:RecordCount > 0
oData:MoveNext()
If oData:Eof()
oData:MoveLast()
EndIf
EndIf
Return( oData )
//--------------------------------------------------------------------------//
// Method Ir Al Ultimo Registro
//--------------------------------------------------------------------------//
Function Ultimo(oData)
If oData:RecordCount > 0
oData:MoveLast()
EndIf
Return( oData )
//--------------------------------------------------------------------------//
Contribución al foro experiencia sobre Bases.mdb
-
- Posts: 115
- Joined: Sat Mar 07, 2009 9:36 pm
- Location: Argentina
- Contact:
Re: Contribución al foro experiencia sobre Bases.mdb
ola juan carlos
pregunta tonta...
microsoft access necesita tener instalado?
es más rápido que los DBFs?
gracias
pregunta tonta...
microsoft access necesita tener instalado?
es más rápido que los DBFs?
gracias
FWH2008 | xHarbour | BCC74 | SQLRDD
-
- Posts: 115
- Joined: Sat Mar 07, 2009 9:36 pm
- Location: Argentina
- Contact:
Re: Contribución al foro experiencia sobre Bases.mdb
No es necesario tener instalado acces... si es necesario tener instalado ODBC Normalmente esta instalado con el paquete windows.
el tema de velocidad depende de la maquina y o el tipo de redes donde corra de todas maneras ado en mas rapido.
el tema de velocidad depende de la maquina y o el tipo de redes donde corra de todas maneras ado en mas rapido.
-
- Posts: 115
- Joined: Sat Mar 07, 2009 9:36 pm
- Location: Argentina
- Contact:
Re: Contribución al foro experiencia sobre Bases.mdb
En la próxima entrega : agregar - borrar - modificar y trabajar con xbrowse de manera segura usando un arreglo de memoria.
-
- Posts: 3
- Joined: Mon Oct 23, 2017 1:47 pm
Re: Contribución al foro experiencia sobre Bases.mdb
No teste que fiz aqui eu consigo conectar com o BD mas o "select * from table" sempre retorna vazio sendo que tenho 44332 registros o que pode ser ??