Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Ejemplo De Base De Datos En Libro No Funciona Del Todo Correctamente
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Ejemplo De Base De Datos En Libro No Funciona Del Todo Correctamente 
 
Hola Comunidad!.

Ya que nadie nunca ha dicho nada, (creo que yo si), el ejemplo no funciona del todo correctamente:
No me creo que con todos los que somos, nadie haya dicho que el ejemplo no funciona. :???

- Puedes modificar registro.
- No puedes crear un registro nuevo.

Llevaba varios días intentando de encontrar una respuesta al problema, pero no la vi en ninguna
base de datos de los ejemplos que conocemos.

Después de leer un poco sobre SQLite, estaba creando un ejemplo de Bdd desde linea de comandos.
Y comprobé que no era necesario especificar todos los campos para entrar un registro.

Con SQlite3 instalado.Fui a linea de comandos y entre:

>sqlite3 Prueba.db

sqlite> create table Prueba (id integer primary key, nombre text);
sqlite>insert into Prueba (id,nombre) values(1,'Juan');
sqlite>insert into Prueba (id,nombre) values(2,'José');
sqlite>insert into Prueba (nombre) values('Antonio');
sqlite>insert into Prueba (nombre) values('Pedro');

sqlite> .mode column
sqlite> .headers on
sqlite> select * from Prueba;
 


El final fue dos columnas con cada campo y sus valores debajo.(Lo pegue aquí, pero no me salio muy bien )

A lo que voy:
Donde inserte Antonio y Pedro no hay valor especificado para el campo id
No pude hacerlo de la misma manera en gambas.

Aprendí hacerlo en gambas.Me encontré el problema del campo clave.En el ejemplo de la base de datos del
libro de Gambas.Pone como campo clave en la base de datos el id, aunque lo ponga numérico, lo puse autonumérico.
Vale.Ademas y digo yo.Si en la base de datos pone id como campo clave,¿ por que luego en el código utiliza titulo ?...

No tenia ni la mas remota idea de que hacer con ese campo.Por que en la base de datos no hace referencia a un incremento
ni a ponerlo directamente en una caja de texto.

En la creación de un registro nuevo en el libro pone:

TRY hConn.Exec("insert into datos values (&1,&2,&3,&4,&5)", TxtTitulo.Text, TxtAutor.Text, CDate(TxtFecha.Text), CFloat(TxtPrecio.Text), TxtDecripcion.Text)
 


Cuando en realidad debería ser:
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)
 


Esa constante NULL me logro que el campo autonumérico incrementase su valor automáticamente.
¿ Que significa NULL realmente en la entrada del registro ?. No hay una caja de texto especifica para este campo, ya que no
hace falta.

¿ Como que parece tan diferente escribir en shell la creación de la base de datos con respecto a gambas ?.
(Me refiero a las sentencias entre comillas).
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejemplo De Base De Datos En Libro No Funciona Del Todo Correctamente 
 
SQLite es algo peculiar con su manera de tratar los indices y de relacionarse con gambas.
Cosas a tener en cuenta:

- Todas las tablas, lo definas o no, tienen un campo indice numérico y autoincremental que es la clave primaria.
- Cualquier campo que se llame ID o ROWID (y algún nombre más que no recuerdo de memoria) definido como primary key autoincremental, se consideran como sinónimos de dicho campo índice ya existente.
- Si defines tu campo ID como PK Autoincrement not null, gambas no lo reconocerá como índice. Creo que el driver de gambas busca la palabra "PRIMARY KEY" (no "PK") en la definición de la tabla, aunque la base de datos sí funcionará bien.
- Un campo Primary Key Autoincremental, es un campo del que te olvidas a la hora de actualizar funciona solito.
- Para añadir sí debes mencionarlo, pero no asignale valor (o sea, darle valor NULL o vacío "")

Con eso las cosas deberían funcionarte sin problemas.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejemplo De Base De Datos En Libro No Funciona Del Todo Correctamente 
 
Gracias Shordi.

Debió ser que se lo olvido a los autores del libro.Para ser el único ejemplo sobre la base de datos, con su formulario para entrar los datos, otro para mostrar los registros,
es una pena que no este al 100% operativa.Sobre todo para nosotros que estamos aprendiendo.Tu ya tienes mucho camino recorrido.

Siempre me quejo de que para los que aprendemos,encontrar tropiezos en el camino del aprendizaje es un poco desesperante por que a
veces no tienes ni para donde tirar. Y es lo que me suele ocurrir.Insisto y me llevo días dándole al tema.Con lo fácil que resulta poner la
pregunta.

No es cuestión solo de preguntar y preguntar, es también de aprender por uno mismo.El dilema es que si no se conoce, ¿ como se desarrolla una idea ?,
si te falta lo principal.Es como clavar con un alicate por que no se conoce el martillo.En este caso, hace el apaño.
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Gestor De Base De Datos De Gambas Funciona? CanihoJR General 0 Jueves, 08 Octobre 2009, 21:37 Ver último mensaje
CanihoJR
No hay nuevos mensajes Gestor De Base De Datos No Se Muestra Corr... shag84 Instalación 3 Viernes, 05 Febrero 2010, 01:52 Ver último mensaje
techm3
No hay nuevos mensajes Fullscreen No Funciona Correctamente Joesabido General 7 Jueves, 15 May 2014, 19:45 Ver último mensaje
shordi
No hay nuevos mensajes Paint.DrawText No Funciona Correctamente? xmuno Controles/Librerías/Componentes 5 Martes, 06 Octobre 2015, 14:51 Ver último mensaje
xmuno
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
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



  

 

cron