Ya me funciono.
Tengo una Clase Pero el ejemplo lo voy a poner a partir de una Tabla de Trabajadores que tiene los campos ID autonúmerico, CI tipo string, nombre as string, apellidos as string.
El CI(Númedo del carne de identidad) tiene 11 lugares, en Cuba la conformación de este número nos da los datos del día, mes aÑo de nacimiento y el sexo.
por ejemplo el siguiente número de CI : 65020902569
650209 Nacio el 9 de febreo del 1965
y el penultimo número en este caso 6 si es par(incluye el 0) es de sexo masculino e impar femenino.
Entonces cree una clase padre que se llama CPersona y una hija que se llama TbTrabajador
La clase CPersona
'
gambas module file
PRIVATE vid AS Integer
PRIVATE vCI AS String
PRIVATE vNombre AS String
PRIVATE vApellidos AS String
'-------------------------------------
PROPERTY id AS Integer
PROPERTY CI AS String
PROPERTY Nombre AS String
PROPERTY Apellidos AS String
'-------------------------------------
'------------------------------------
'Metodos de lectura y escrituras
'de los atributos de la clase
'-------------------------------------
FUNCTION id_read() AS Integer
RETURN vid
END
SUB id_write(Valor AS Integer)
vid = Valor
END '------------------------------------
'para CI
FUNCTION CI_read() AS String
RETURN vCI
END
SUB CI_write(Valor AS String)
vCI = Valor
END
'----------------------------------------
'------------------------------------
'para Nombre
FUNCTION Nombre_read() AS String
RETURN vNombre
END
SUB Nombre_write(Valor AS String)
vNombre = Valor
END
'----------------------------------------
'para Apellidos
FUNCTION Apellidos_read() AS String
RETURN vApellidos
END
SUB Apellidos_write(Valor AS String)
vApellidos = Valor
END
'--------------------------------------
'Para crear un objeto de esta clase
'---------------------------------------
PUBLIC SUB Nuevo()
id_write(0)
CI_write("")
Nombre_write("")
Apellidos_write("")
END SUB
'-------------------------------------------------
'Devuelvela fecha de nacimiento
'-------------------------------------------------
PUBLIC FUNCTION fNacimiento(mCI AS String) AS String
DIM dia AS String
DIM mes AS String
DIM anno AS String
DIM fecha AS String
DIM a AS String
a = Left(mCI)
mes = Mid(mCI, 3, 2)
dia = Mid(mCI, 5, 2)
IF a = 0 THEN
anno = "20" & (Left(mCI, 2))
ELSE
anno = "19" & Left(mCI, 2)
END IF
fecha = dia & "/" & mes & "/" & anno
RETURN fecha
END
'----------------------------------------------------
'Devuelve la edad
'----------------------------------------------------
PUBLIC FUNCTION edad(mfecha AS String) AS String
DIM FN AS Date
DIM fedad AS Integer
DIM hoy AS Date
DIM dia AS String
DIM mes AS String
DIM anno AS String
DIM fecha AS String
DIM a AS String
a = Right(mfecha, 4)
mes = Mid(mfecha, 4, 2)
dia = Left(mfecha, 2)
hoy = Now
fecha = mes & "/" & dia & "/" & a
FN = CDate(fecha)
fedad = (hoy - FN) / 365
RETURN fedad
END
'------------------------------------------------------
'Devuelve el sexo
'------------------------------------------------------
PUBLIC FUNCTION sexo(miCI AS String) AS String
DIM M AS String
DIM F AS String
DIM x AS Integer
M = "Masculino"
F = "Femenino"
x = CInteger(Mid(miCI, 10, 1)) MOD 2
IF x = 0 THEN
RETURN M
ELSE
RETURN F
END IF
END
'-----------------------------------------------------------
La clase TbTrabajador
'
gambas class file
INHERITS CPersona
PRIVATE mRs AS Result
PRIVATE mBase AS Connection
'-------------------------------------------------
'Metodos de operaciones sobre la Base de Datos
'------------------------------------------------
'para conectarnos a la Tabla tbtrabajador
'--------------------------------------
PUBLIC SUB Abrir(Bd AS Connection)
mBase = Bd
mRs = mBase.Exec("SELECT * from tbtrabajador")
END SUB
'------------------------------------------------
'Nos muestra Todos los registros de la Tabla
'ordenado por el campo Nombre
'-----------------------------------------------
PUBLIC FUNCTION SelVistbtrabajador() AS Result
RETURN mBase.Exec("SELECT * from tbtrabajador ORDER BY Nombre")
END FUNCTION
'-------------------------------------------------
'Nos mueve al ultimo introducido en la tabla
'-------------------------------------------------
PUBLIC FUNCTION UltimoTrabajador() AS Integer
DIM lRs AS Result
lRs = mBase.Exec("SELECT * FROM tbtrabajador order by ID")
IF NOT lRs.Available THEN
RETURN 0
ELSE
lRs.MoveFirst
RETURN lRs["ID"]
END IF
END FUNCTION
'-------------------------------------------------------------------------------------
'Para buscar
'--------------------------------------------------------------------------------------
PUBLIC FUNCTION SelBuscaPalabra(mCadena AS String, OPTIONAL mCampo AS String = "Descripcion") AS Result
RETURN mBase.Exec("SELECT * FROM tbtrabajador WHERE " & mCampo & "<>'' AND " & mCampo & " Like '%" & mCadena & "%' ORDER BY " & mCampo & " ASC")
END FUNCTION
'-----------------------------------------------------------------------------------------
'Nos dice la cantidad de Trabajadores que existe en la tabla trabajador
'-----------------------------------------------------------
PUBLIC FUNCTION NumeroRegistros() AS Integer
DIM lRs AS Result
lRs = mBase.Exec("SELECT * from tbtrabajador")
RETURN lRs.Count
END FUNCTION
'----------------------------------------------------------------------------------------
'NOs posiciona en la primer registro de la Tabla
'-----------------------------------------------------
PUBLIC SUB Primero()
IF mRs.Available THEN
mRs.MoveFirst
Leer
END IF
END
'------------------------------------------------------------------------------------------
'nos mueve al siguiente registro de la tabla
'----------------------------------------------
PUBLIC SUB Siguiente()
IF mRs.Available THEN
mRs.MoveNext
Leer
END IF
END
'-----------------------------------------------------------------------------------
'Nos mueve al registro anterior de la tabla
'---------------------------------------------
PUBLIC SUB Anterior()
IF mRs.Available THEN
mRs.MovePrevious
Leer
END IF
END
'------------------------------------------------------------------------------------
'nos mueve al ultimo registro de la tabla
'-----------------------------------------------------------------------------------
PUBLIC SUB Ultimo()
IF mRs.Available THEN
mRs.MoveLast
Leer
END IF
END
'------------------------------------------------------------------------------------
'Nos muestra el registro donde estamos posicionado
'----------------------------------------------------
PUBLIC FUNCTION Actual(Dato AS Variant, OPTIONAL Cadena AS Boolean = FALSE) AS Boolean
DIM Criterio AS String
IF (IsInteger(Dato)) THEN
Criterio = "ID = " & Dato
IF Cadena = TRUE THEN
Criterio = "Nombre='" & Dato & "'"
END IF
ELSE
Criterio = "Nombre='" & Dato & "'"
END IF
mRs = mBase.Exec("SELECT * FROM tbtrabajador WHERE " & Criterio)
IF mRs.Count > 0 THEN
Leer
RETURN TRUE
ELSE
RETURN FALSE
END IF
END FUNCTION
'---------------------------------------------------------------------------------
'Adiciona ó actualiza un registro
'--------------------------------------------------------------------------------
PUBLIC FUNCTION Grabar(mNuevo AS Boolean) AS String
DIM SQLString AS String
DIM lResultado AS String
IF mNuevo THEN
SQLString = "INSERT INTO tbtrabajador ( "
SQLString = SQLString & "CI, "
SQLString = SQLString & "Nombre, "
SQLString = SQLString & "Apellidos "
SQLString = SQLString & ") VALUES ('"
SQLString = SQLString & SUPER.CI & "','"
SQLString = SQLString & SUPER.Nombre & "','"
SQLString = SQLString & SUPER.Apellidos & "')"
lResultado = Cadenas.MSG_REGGRAB
ELSE
SQLString = "UPDATE tbtrabajador SET "
SQLString = SQLString & "CI='" & SUPER.CI & "',"
SQLString = SQLString & "Nombre='" & SUPER.Nombre & "',"
SQLString = SQLString & "Apellidos='" & SUPER.Apellidos & "'"
SQLString = SQLString & " WHERE ID=" & SUPER.id
lResultado = Cadenas.MSG_REGACT
END IF
mBase.Exec(SQLString)
RETURN lResultado
END FUNCTION
'-------------------------------------------------------------------------------------------
'Elimina un registro
'-------------------------------------------------------------
PUBLIC SUB Borrar(lID AS Integer)
mBase.Exec("DELETE FROM tbtrabajador WHERE ID=" & lID)
END SUB
PRIVATE SUB Leer()
IF mRs.Available THEN
SUPER.id = mRs["ID"]
SUPER.CI = mRs["CI"]
SUPER.Nombre = mRs["Nombre"]
SUPER.Apellidos = mRs["Apellidos"]
END IF
END SUB
'----------------------------------------------------------------------------------------