Poniendo Al Día El Ejemplo De Base De Datos Del Manual De Gambas


Objetivo: Poniendo Al Día El Ejemplo De Base De Datos Del Manual De Gambas
Buenas!

Bien. Primero, necesitamos el ejemplo original. Ponerle un buen nombre, si hace falta cambiarlo.
Aquí esta el que escribí en su día, el que usa el manual de Gambas.

Ok, hay una línea que tuve que cambiar en su día.
No sé si es ahora necesario. El ejemplo usaba como campo clave el titulo del libro.

Public Sub BtnAceptar_Click()

If Editando Then
Try HResul["titulo"] = TxtTitulo.Text
Try HResul["autor"] = TxtAutor.Text
Try HResul["fecha"] = TxtFecha.Text
Try HResul["precio"] = TxtPrecio.Text
Try HResul["descripcion"] = TxtDecripcion.Text
Try HResul.Update()
Else
'Problema del campo clave
'TRY hConn.Exec("insert into datos values (&1,&2,&3,&4,&5)", TxtTitulo.Text, TxtAutor.Text, CDate(TxtFecha.Text), CFloat(TxtPrecio.Text), TxtDecripcion.Text)
Try hConn.Exec("insert into datos values (&1,&2,&3,&4,&5,&6)", Null, TxtTitulo.Text, TxtAutor.Text, CDate(TxtFecha.Text), CFloat(TxtPrecio.Text), TxtDecripcion.Text)

Endif

Me.Close()

Catch
Message.Error("Imposible introducir los datos solicitados")

End


Mí idea es que tomemos el ejemplo base y vayamos creando modificaciones, que las vayamos demostrando de alguna manera como mejora el código original.
Lo importante es dejar bien claro el motivo de por que se hace , la mejora y que el programador aprenda de esas mejoras. Que las pruebe y las vea.

El siguiente paso después de haber mejorado este ejemplo. Es la creación de un nuevo ejemplo en el que tengamos dos tablas, libros y autores
Hacer unas operaciones básicas. Cómo debemos administrar nuestras consultas, como podríamos aprovechar una consulta y que nos valga como base
para crear otras.

Y así poco a poco ir mejorando el ejemplo original. Tener distintos ejemplos del mismo que vaya avanzando en la comunidad,
ver los pasos como ha ido cambiando, que pueda bajarlo todo el que quiera y que tengamos un buen ejemplo todos los gamberos con
el que empezar el tema de base de datos.

Podemos decir por que es mejor usar un componente que otro para mostrar los datos.
Que mejoras tiene si usas uno u otro. Lo que se nos vaya ocurriendo.

Desde luego con el ejemplo original se van encontrar distintos problemas:
La fecha, el cierre de la conexión constante, el tipo de componente para mostrar los registros,
su estética, etc, etc.

Espero que os guste la idea.

Saludos

última edición por Shell el Jueves, 20 Octobre 2016, 23:44; editado 2 veces

MisLibros.tar.gz
Descripción:  
Descargar
Nombre del archivo: MisLibros.tar.gz
Tamaño: 16.38 KB
Descargado: 66 veces
MisLibros.tar.gz
Descripción:  
Descargar
Nombre del archivo: MisLibros.tar.gz
Tamaño: 16.38 KB
Descargado: 66 veces
MisLibros.tar.gz
Descripción:  
Descargar
Nombre del archivo: MisLibros.tar.gz
Tamaño: 16.38 KB
Descargado: 66 veces

Objetivo: Re: Poniendo Al Día El Ejemplo De Base De Datos Del Manual De Gambas
Shell, no es ejecutable el proyecto porque no contiene la base de datos.
Cópiala dentro del propio proyecto y extráela en una carpeta en la primera ejecución. Si no es un ejemplo no funcional que no sirve para nada a un novato.

public sub Form_Open()
if not exist(user.Home &/ "." &/ Aplication.name) then
mkdir user.Home &/ "." &/ Aplication.name
copy "libros.db" to user.Home &/ "." &/ Aplication.name&/
endif
end


Más o menos, que lo he escrito al vuelo...

Por otra parte ColumnView nunca me ha gustado... es un control complejo (hereda de treeview que a su vez hereda de Gridview)

Mucho mejor transformar el ejemplo para Gridview, que es un control mucho más común y útil.

Es sólo una sugerencia, claro.

Saludos.

Perfil MP  
Objetivo: Re: Poniendo Al Día El Ejemplo De Base De Datos Del Manual De Gambas
Shordi:

Hay algo que no funciona en ese código de copiar la base de datos.

Citar:

Más o menos, que lo he escrito al vuelo...


¿ Puedes rectificarlo ?.

He usado esto:

If Not Exist(user.Home &/ "." &/ Application.name) Then
Mkdir user.Home &/ "." &/ Application.name
'Error Fin de archivo inesperado
Copy "libros.db" To user.Home &/ "." &/ Application.name
Endif


¿ Copy no debería ser ?.

Copy "libros.db" To user.Home &/ "." &/ Application.Name &/ "libros.db"


De todas maneras tengo un directorio oculto MisLibros y no .MisLibros

Saludos

última edición por Shell el Jueves, 20 Octobre 2016, 21:35; editado 1 vez
Objetivo: Re: Poniendo Al Día El Ejemplo De Base De Datos Del Manual De Gambas
Citar:

¿ Copy no debería ser ?.

Copy "libros.db" To user.Home &/ "." &/ Application.Name &/ "libros.db"


Pues posiblemente, escribir al vuelo es escribir al vuelo.

Citar:
De todas maneras tengo un directorio oculto MisLibros y no .MisLibros

Si no empieza por punto no es oculto... digo.

Perfil MP  
Objetivo: Re: Poniendo Al Día El Ejemplo De Base De Datos Del Manual De Gambas
Citar:

Pues posiblemente, escribir al vuelo es escribir al vuelo.


Una pregunta. ¿ Te gustaba mucho grabar on the fly ?.
( Pues era jodido, te exponías a quedarte sin cd o dvd ). Aventurero!.

Al final mientras veía Theory of Big Bang. Invente este ejemplo:

Public Sub Copiar()

If Not Exist(User.Home &/ "." & Application.Name) Then
Print "Creando el directorio " & User.Home &/ "." & Application.Name
Mkdir User.Home &/ "." & Application.Name
Print "Copiando el archivo"
Copy "datos" To User.home &/ "." & Application.Name &/ "datos"
Print "Directorio y archivo creado"
Else
Print "Directorio y archivo ya estaban creados"
Endif

End


Citar:

Si no empieza por punto no es oculto... digo.


Normal. Raro, raro, raro.

Saludos

Objetivo: Re: Poniendo Al Día El Ejemplo De Base De Datos Del Manual De Gambas
Bueno. Ya tiene añadido la creación del directorio y copia la base de dato que incluye el proyecto,
con unos cuantos títulos.

Saludos


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1163s (PHP: -17% SQL: 117%)
Consultas SQL: 27 - Debug off - GZIP Activado