////////////////////////////////////////////////////////////////////////////
// //
// 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 )
//--------------------------------------------------------------------------//