mapbd

Download MapBD

If you can't read please download the document

Upload: nervis-j-gutierrez

Post on 26-Nov-2015

5 views

Category:

Documents


0 download

DESCRIPTION

bd

TRANSCRIPT

' Basado ejemplo:'http://www.gambas-es.org/viewtopic.php?f=3&t=1965La clase {registro_Tabla}Analizar Base de datos. Tipo Sqlite / MySqlCrear tantas clases Tablas como n de tablas que haya en la B.D.Crear una clase Registro por cada TablaCrear tantos campos como n de campos haya en el registro------------------------------------------------------------------------------------------------------------------ Clase de Registro ----------------------------------------------------------------------------------------------------------------Por cada Propiedad/Campo del Registro: listado de {nombre_campo}, campo.countmtodos _read() y _write()y crear variable private h{nombre_campo}Segn el tipo de campo [integer, string, etc]repetir tantas veces como campos haya:PRIVATE h{nombre_campo} AS {tipo_datos}PROPERTY {nombre_campo} AS {tipo_datos}'-----------------------------------'Metodos de lectura y escrituras'de los atributos de la clase'------------------------------------FUNCTION {nombre_campo}_read() AS {tipo_datos}RETURN h{nombre_campo}ENDSUB {nombre_campo}_write(Valor AS {tipo_datos})h{nombre_campo} = ValorEND'-----------------------------------'Metodo constructor'-----------------------------------PUBLIC SUB _New(repetir tantas veces como campos haya:{nombre_campo}_write( {tipo_datos} [0,] )END SUBLa clase {tabla}INHERITS {registro_Tabla}PRIVATE hRes AS ResultPRIVATE hConexion AS Connection'---------------------------------------------------------------'Metodos de operaciones sobre la Base de Datos (abrir para MySql)'---------------------------------------------------------------PUBLIC SUB open()

' para crear la conexion a la base de datosWITH hconexion.type = **tipo** ' lo puede obtener del programa principal MYSQL.host = **host** ' lo puede obtener del programa principal LOCALHOST.login = **login** ' lo puede obtener del programa principal ADMIN.password = **password** ' lo puede obtener del programa principal 1234567890.name = **name** ' lo puede obtener del programa principal PRUEBASTRY .OPENIF ERROR THENMessage.Error("error abriendo las base de datos!!!\n" & Error.Text)ME.CloseELSE'selecciono los campos de la tabla que contiene la BDhRes = hConexion.Exec("SELECT * FROM & {**tabla**})hRes.MoveLastEND IFEND WITHEND SUB'-----------------------------------------------------------------'Nos muestra Todos los registros de la Tabla {tabla}'----------------------------------------------- -----------------PUBLIC FUNCTION SelVist() AS ResultRETURN hconexion.Exec("SELECT * from {**tabla**} ")END FUNCTION'------------------------------------------------'Nos mueve al ultimo introducido en la tabla {tabla}, del campo {campo}'------------------------------------------------'repetir por cada campoPUBLIC FUNCTION UltimoRegistro_{**campo**}() AS IntegerDIM lRs AS ResultlRs = hconexion.Exec("SELECT * FROM & {**tabla**} & order by & {**campo**) & \)IF NOT lRs.Available THENRETURN 0ELSElRs.MoveFirstRETURN lRs["\ & {campo} & \]END IFEND FUNCTION'-----------------------------------------------------------------------------------'Para buscar' Repetir por cada campo que haya.'------------------------------------------------------------------------------------PUBLIC FUNCTION SelBuscaPalabra_{**campo**}{(mCadena AS String) AS ResultRETURN hconexion.Exec("SELECT * FROM & {**tabla**} & WHERE " & {**campo**} & "Like '%" & mCadena & "%' ORDER BY " & {campo} & " ASC")END FUNCTION'---------------------------------------------------------------------------------------'Nos dice la cantidad de Registros que hay en la tabla {tabla}'----------------------------------------------------------- ---------------------------PUBLIC FUNCTION NumeroRegistros() AS IntegerDIM lRs AS ResultlRs = hconexion.Exec("SELECT * from & {**tabla**} \")

RETURN lRs.CountEND FUNCTION'--------------------------------------------------------------------------------------'NOs posiciona en la primer registro de la Tabla'----------------------------------------------------PUBLIC SUB Primero()IF hresul.Available THENhresul.MoveFirstLeerEND IFEND'----------------------------------------------------------------------------------------'nos mueve al siguiente registro de la tabla'---------------------------------------------PUBLIC SUB Siguiente()IF mRs.Available THENmRs.MoveNextLeerEND IFEND'---------------------------------------------------------------------------------'Nos mueve al registro anterior de la tabla'--------------------------------------------PUBLIC SUB Anterior()IF mRs.Available THENmRs.MovePreviousLeerEND IFEND'----------------------------------------------------------------------------------'nos mueve al ultimo registro de la tabla'---------------------------------------------------------------------------------PUBLIC SUB Ultimo() asIF mRs.Available THENmRs.MoveLastLeerEND IFEND'----------------------------------------------------------------------------------'Nos muestra el registro donde estamos posicionado'---------------------------------------------------'repetir por cada campoPUBLIC FUNCTION ver_{**campol**}(Dato AS {**campo_tipo**) AS BooleanDIM Criterio AS StringCriterio=\ & {**campo**} & = & dato & \ 'ver tambien substhresult = hconexion.Exec("SELECT * FROM {**tabla**} WHERE " & Criterio)IF mRs.Count > 0 THENLeerRETURN TRUEELSERETURN FALSEEND IFEND FUNCTION'-------------------------------------------------------------------------------

-'Adiciona un registro add'------------------------------------------------------------------------------PUBLIC FUNCTION add()DIM SQLString AS String'aade un registroSQLString = "INSERT INTO {tabla} ( "SQLString &= {campo[0]} & =' & super.{campo[0]}For a=1 to numero_de_campos.count-2SQLString &= ', & {campo[a]} & = & super.{campo[a]}nextSQLString &= ', & {campo[campos.count-1]} & = & super.{[campos.count-1]} & "')"hconexion.Exec(SQLString)END FUNCTION'-------------------------------------------------------------------------------' actualiza un registro update dado campo y valor (normalmente ID y n de este)'------------------------------------------------------------------------------PUBLIC FUNCTION update(Id as string,campoupdate as string)DIM SQLString AS String'modifica un registroSQLString = "UPDATE {tabla} SET "SQLString& = 12campo[0]} & ='" & SUPER.{campo[0]} & "',"For a=1 to numero_de_campos.count-1SQLString &= ', & {campo[a]} & =' & super.{campo[a]}nextSQLString& "' WHERE & campoUpdate & =" & Idhconexion.Exec(SQLString)END FUNCTION'-----------------------------------------------------------------------------------------'Elimina un registro'------------------------------------------------------------'repetir por cada campoPUBLIC SUB erase_campo(Id as {tipo dato de campo})hconexion.Exec("DELETE FROM {**tabla**} WHERE & {**campo**} & =" & id )END SUB'--------------------------------------------------------------------------------------------------PRIVATE SUB Leer()IF mRs.Available THEN'repetir tantas veces como campos hallaSUPER.{campo} = hresult["\ & {campo} & \]END IFEND SUB'---------------------------------------------------------------------------------------