Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Crear Base De Datos Sqlite Con Codigo Como?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Crear Base De Datos Sqlite Con Codigo Como? 
 
buenas, hasta ahora he conocido hacer una base de datos creándola con gambas ahora bien,
me interesa crear una base de datos desde el código así por ejemplo en vez de copiar una base de datos de una copia ya hecha, sencillamente crear una de cero con una sentencia sql.

pero aun no doy como crear una base de datos con el propio código gambas.
la idea de esto también es poder crear bases y tablas y verlas con el programita que hice el InfoDataBaseSql

alguna idea por donde empezar?
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Base De Datos Sqlite Con Codigo Como? 
 
V3ctor:

He encontrado un ejemplo en la web, y lo he subido a mi blog:

http://jsbsan.blogspot.com.es/2015/...na-base-de.html


Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Base De Datos Sqlite Con Codigo Como? 
 
Sólo una precisión: Eso del Gridview no es necesario para crear la base y las tablas.
Para eso basta con estas líneas:

DIM $hConn AS NEW Connection
DIM htable as table

'delete an existing test.sqlite, o sea, profilaxis
IF Exist(User.home & "/test.sqlite") THEN
    KILL User.home & "/test.sqlite"
ENDIF

'create test.sqlite
$hConn.Open
    $hConn.Databases.Add("test.sqlite")
$hconn.Close

'define the table sampleTable
$hconn.name = "test.sqlite"
$hConn.Open
hTable = $hConn.Tables.Add("sampleTable")
hTable.Fields.Add("s_seq", db.Integer)
hTable.Fields.Add("s_rndm", db.Integer)
hTable.PrimaryKey = ["s_seq"]
hTable.Update
 


Antes había un ejemplo guay en los antiguos ejemplos. Era uno que hacía una base de datos de imágenes, se creataba todo por código.
Ahora en la granja no está...
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Base De Datos Sqlite Con Codigo Como? 
 
Shordi;:


Citar:
Antes había un ejemplo guay en los antiguos ejemplos. Era uno que hacía una base de datos de imágenes, se creataba todo por código.
Ahora en la granja no está...

¿Cual era?

Si me lo dices lo subo a la granja (yo tengo la 3.5.4, y alli todavia estan los ejemplos)
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Base De Datos Sqlite Con Codigo Como? 
 
Creo que se llamaba picture dabase...
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Base De Datos Sqlite Con Codigo Como? 
 
Hola v3ctor,

yo puse en el foro de gambas-it el enlace a este tu asunto.

Hay un aporte:
http://www.gambas-it.org/smf/index....3;boardseen#new
 



 
última edición por vuott el Martes, 05 May 2015, 14:43; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Base De Datos Sqlite Con Codigo Como? 
 
shordi y jsbsan

me da este error:

 pantallazo_1430833341_233829

tengo instalados los dos componentes el sqlite3 y el de base de datos.
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Base De Datos Sqlite Con Codigo Como? 
 
Citar:
Off topic
shordi y jsbsan

me da este error:


Tienes que acostumbrarte a intentar entender el código que se pone aquí. No se pretende dar una solución exacta de corta y pega tan sólo apuntar hacia dónde va el camino a seguir.
Dicho lo cual, para que funcione a la conexión hay que darle el camino y el tipo de base de datos...

Dim $hConn As New Connection
Dim htable As Table

'delete an existing test.sqlite, o sea, profilaxis
If Exist(User.home & "/test.sqlite") Then
    Kill User.home & "/test.sqlite"
Endif
$hConn.Type = "sqlite"
$hConn.host = User.Home
'create test.sqlite
$hConn.Open
    $hConn.Databases.Add("test.sqlite")
$hconn.Close

'define the table sampleTable
$hconn.name = "test.sqlite"
$hConn.Open
hTable = $hConn.Tables.Add("sampleTable")
hTable.Fields.Add("s_seq", db.Integer)
hTable.Fields.Add("s_rndm", db.Integer)
hTable.PrimaryKey = ["s_seq"]
hTable.Update
 

 



 
última edición por shordi el Martes, 05 May 2015, 16:26; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Base De Datos Sqlite Con Codigo Como? 
 
Vuott:
El código de tu colega muy clarito y apropiado.  
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Crear Base De Datos Sqlite Con Codigo Como? 
 
Hola!.

Lo que estoy viendo es que es más fácil encontrar ejemplos de gambas para crear las tablas desde códigos, pero no el código para ir añadiendo registros.
Si, en el ejemplo que Julio muestra.

Tengo uno que posiblemente sea de la comunidad, trata de la creación de una biblioteca, pero no se añaden registro.
Es del usuario Ahtonio.

'Ejemplo de Ahtonio

Public Sub Form_Open()
  
End

' gambas module file
Public hCon As Connection 'Conexion que usaremos en toda la aplicacion
Const sDBname As String = "mybooks.db" 'Todos los usuarios leeran en su Home
'la base de datos mybooks.db (sqlite3)

Public Sub openDB()
  'hCon.Close 'Podemos intentar cerrar la conexion si hay alguna activa y no dara error

  hCon = New Connection 'Instanciamos conexion
  With hCon
    .Type = "sqlite3"
    .Host = User.Home  'En el directorio Home (para todos los usuarios)
    .Name = ""
  End With
  hCon.Open
  If Not hCon.Databases.Exist("mybooks.db") Then  'Si no existe la B.D. la creamos
    hCon.Databases.Add("mybooks.db")
    Wait 0.3    'Esperamos para dar tiempo a que sea creada si hay algun lapso
    hCon.Close
    hCon.Name = "mybooks.db"
    hCon.Open
    ' Como la hemos creado nueva, creamos las tablas
    newlibro
    newautor
    newcoleccion
    newgenero
    neweditorial
  Endif
  hCon.Close
  hCon.Name = sDBname
  hCon.Open
  
End

Public Function newlibro() As Boolean
  ' Tabla de la ficha de registro de libros
  
  Dim hTable As Table
  
  If Not hCon.Tables.Exist("libro") Then
    hTable = hCon.Tables.Add("libro")
    With hTable.Fields
      .Add("idlib", db.Serial)        ' Identificador - Id
      .Add("titlib", db.String, 40)   ' Titulo
      .Add("sublib", db.String, 40)   ' Subtitulo
      .Add("autlib", db.Integer,, 1)      ' R -> Autor
      .Add("collib", db.Integer,, 1)  ' R -> Coleccion
      .Add("edilib", db.Integer,, 1)      ' R -> Editorial
      .Add("genlib", db.Integer,, 1)  ' R -> Genero
      .Add("paglib", db.Integer)      ' Numero de paginas
      .Add("siplib", db.String)       ' Sipnosis argumental
      .Add("isbnlib", db.String, 14)  ' ISBN - Numero de identificacion
      .Add("stdlib", db.Boolean,, True)
    End With
    hTable.PrimaryKey = ["idlib"]
    hTable.Update
  Endif

End

Private Function newcoleccion() As Boolean
  ' Agrupación de libros en colecciones
  ' Si no pertenece a ninguna coleccion sera la 1 - INDEPENDIENTE
  
  Dim hTable As Table
  Dim rsTable As Result

  If Not hCon.Tables.Exist("coleccion") Then
    hTable = hCon.Tables.Add("coleccion")
    With hTable.Fields
      .Add("idcol", db.Serial)
      .Add("nomcol", db.String, 30)
    End With
    hTable.PrimaryKey = ["idcol"]
    hTable.Update
  Endif
  rsTable = hCon.Create("coleccion")  'Creamos registro
  rsTable!nomcol = "INDEPENDIENTE"    'Dato que tomara el campo
  rsTable.Update                      'Hacemos efectivos los cambios (grabamos)
  
End

Private Function newgenero() As Boolean
  ' Categoria de libros por su genero
  ' Si no conocemos el genero sera el 1 - INDEFINIDO
  
  Dim hTable As Table
  Dim rsTable As Result

  If Not hCon.Tables.Exist("genero") Then
    hTable = hCon.Tables.Add("genero")
    With hTable.Fields
      .Add("idgen", db.Serial)
      .Add("nomgen", db.String, 30)
    End With
    hTable.PrimaryKey = ["idgen"]
    hTable.Update
  Endif
  rsTable = hCon.Create("genero")  'Creamos registro
  rsTable!nomgen = "INDEFINIDO"    'Dato que tomara el campo
  rsTable.Update                   'Hacemos efectivos los cambios (grabamos)
  
End

Public Function neweditorial() As Boolean
  ' Tabla de datos de la editorial
  
  Dim hTable As Table
  
  If Not hCon.Tables.Exist("editorial") Then
    hTable = hCon.Tables.Add("editorial")
    With hTable.Fields
      .Add("idedi", db.Serial)
      .Add("nomedi", db.String, 40)
      .Add("diredi", db.String, 40)
      .Add("disedi", db.String, 5)    
      .Add("pobedi", db.String, 20)
      .Add("prvedi", db.String, 20)
      .Add("tlfedi", db.String, 9)
      .Add("webedi", db.String, 40)   'Direccion web
      .Add("maiedi", db.String, 40)   'Correo electronico
    End With
    hTable.PrimaryKey = ["idedi"]
    hTable.Update
  Endif

End

Public Function newautor() As Boolean
  ' Tabla de datos de autor
  
  Dim hTable As Table
  
  If Not hCon.Tables.Exist("autor") Then
    hTable = hCon.Tables.Add("autor")
    With hTable.Fields
      .Add("idaut", db.Serial)
      .Add("nomaut", db.String, 40)
      .Add("obsaut", db.String)
  End With
    hTable.PrimaryKey = ["idaut"]
    hTable.Update
  Endif
End
 
 


Como veis en este caso no aparece el añadir registros.

No se si en gambas la creación de las bases de datos por códigos son algo más extensas que en Python.
Lo cierto es que sin tener mucha idea de base de datos con sqlite3, de un ejemplo que todo era texto, logré
crear una base de una forma muy sencilla. A ver si lo veo.

#!/usr/bin/python3

# Creando una base de datos en Sqlite3

# Existen muchos tipos de bases de datos en Python, para nuestro
# proposito vamos a usar Sqlite3, por un numero de razones

# La primera es que SQLite3 viene con Python
# Asi que si instalas Python, instalas Sqlite3
# Sqlite3 es la eleccion perfecto para muchas aplicaciones

# Es seguro, simple y no requiere un motor de base externo.
# Es autónomo, sin servidor, configuración cero y completamente
# transacional

# Es un motor de base de datos completamente capaz de ser
# increiblemente facil de usar

# Se debe importar el modulo sqlite3

import sqlite3

def main():
    # De esta forma creamos la base de datos
    # Tenemos una base, un archivo vacio y muy simple de hacer.
    db = sqlite3.connect('test.db')

    # En Python existen muchas opciones y metodos que tu puedes utilizar
    # y tiene una gran potencia para trabajar con las bases de datos
    
    # Vamos a ver que es una factoria de fila. (row factory)
    # Nosotros diriamos db.row_factory = sqlite3.Row.

    # Row factory permite especificar cuantas filas sera
    # devuelta desde el cursor y por la función interna row_factory
    # sqlite3.Row, es muy poderosa y muy sugerida para la mayoría de
    # los propositos. La respuesta que vamos a tener es que mostrara
    # objetos filas, en vez de tuplas.

    # <sqlite3.Row object at 0xb5e25c70>
    # <sqlite3.Row object at 0xb5e25c40>
    # <sqlite3.Row object at 0xb5e25c70>
    # <sqlite3.Row object at 0xb5e25c40>

    # Podriamos verlos como tuplas si quisieramos, o podriamos verlo
    # como diccionarios. Que lo encontramos particularmente practicos
    
    # ( Vamos a cambiar el bucle abajo).
    
    db.row_factory = sqlite3.Row
    # Ahora usaremos db.execute y vamos a darle algunas sentencias SQL    
    db.execute('drop table if exists test')
    # Crearemos la tabla test y le daremos algunos campos
    db.execute('create table test (t1 text, i1 int)')
    # Ahora insertaremos valores en los campos contenido en los parentesis
    # que nos permiten darle un valor
    db.execute('insert into test (t1, i1) values (?, ?)',('one',1))
    # Ahora repetiremos el proceso unas pocas veces y vamos cambiando
    # valores
    db.execute('insert into test (t1, i1) values (?, ?)',('two',2))
    db.execute('insert into test (t1, i1) values (?, ?)',('threee',3))
    db.execute('insert into test (t1, i1) values (?, ?)',('four',4))
    
    # Y asi, vamos añadiendo registros en SQL, y ahora nos falta
    # hacer el metodo commit() por que SQlite es una base transacional
    # Almacenamos estos valores, en caso de que no los necesitemos
    db.commit()

    # Clasificamos por el campo t1
    # cursor = db.execute('select * from test order by t1')
    # Si quisieramos ordenar por el campo i1 seguido de t1, simplemente
    # cambiamos la sentencia SQL
    cursor = db.execute('select i1,t1 from test order by i1')
    
    for row in cursor:
        # Asi que si yo digo que es como un diccionario. Estoy
        # creando un diccionario de objetos basados en iterable,
        # por que fila es un iterable.        
        # print (dict(row))
        
        # La salida sería de esta forma:
        # {'i1': 1, 't1': 'one'}
        # {'i1': 2, 't1': 'two'}
        # {'i1': 3, 't1': 'threee'}
        # {'i1': 4, 't1': 'four'}

        # Si quisieramos decir filas hasta t1, obtendriamos los
        # objetos t1
        # print (row['t1'])
        # Si quisieramos obtener rodos los datos
        print (row['t1'],row['i1'])
        
if __name__ == "__main__": main()
 


Siempre tendremos una gran similitud. Bueno, esto me lo he ido currando viendo los vídeos en ingles..
( Parece una forma más corta a simple vista, tengo que verlo mejor. Naturalmente los ejemplos son distintos)

Saludos
 




===================
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 Como Hago Para Colocar A Una Persona En Un... jousseph General 2 Jueves, 22 Julio 2010, 06:36 Ver último mensaje
jousseph
No hay nuevos mensajes Como Se Puede Exportar Una Base De Datos S... luisrel Bases de Datos 3 Viernes, 25 May 2012, 03:35 Ver último mensaje
razaAztk
No hay nuevos mensajes Crear Base De Datos SQLITE Por Codigo destroyer Bases de Datos 7 Sabado, 11 May 2013, 14:11 Ver último mensaje
shordi
No hay nuevos mensajes Aqui Les Dejo Un Ejemplo Sobre Como Usar S... inkbell14 Aplicaciones/Fragmentos de Código 1 Miercoles, 01 Octobre 2014, 12:08 Ver último mensaje
jsbsan
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

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