Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 2 de 2
Ir a la página Anterior  1, 2
 
Creando Una Base De Datos. Algo Lento [SOLUCIONADO]
Autor Mensaje
Responder citando   Descargar mensaje 
Mensaje Re: Creando Una Base De Datos. Algo Lento 
 
Parece que he solucionado el problema. Ahora la creación de la base de datos es tan instantánea como en Python.
He retocado lo mínimo del ejemplo.

' gambas module file

Private $hcon As Connection
Private basenombre As String = "juegosAmiga.sqlite"

Public Sub Main()  
  
  Dim hfile As File  
  Dim linea As String
  Dim ruta As String  
  Dim re As New RegExp
  Dim palabras As New String[]
  
  ruta = Application.Path &/ "lista_juegos_amiga.txt"    
  hfile = Open ruta For Input  
  
  AbrirBase()
  CrearTabla()
  $hcon.Close()
  $hcon.Name = basenombre
  $hcon.Open  
  
  $hcon.Begin ' Añadido
  While Not Eof(hfile)
    Line Input #hfile, linea
    If Len(linea) > 1 Then
      linea = LTrim(linea)    
      ' No quiero lineas que contengan LISTA,NOMBRE,-
      If Not re.Match(linea, "\\A(LISTA|NOMBRE|-)") Then
        palabras = Split(Replace(linea, "  ", "\n"), "\n", Null, True)
        $hcon.Exec("insert into juegos values (&1,&2,&3,&4,&5)", Null, Trim(palabras[0]), Trim(palabras[1]), Trim(palabras[2]), Trim(palabras[3]))      
      Endif
    Endif
  Wend
  $hcon.Commit 'Añadido
  Close #hfile    
  CerrarConexion()
  
End

Public Sub AbrirBase()
  
  $hcon = New Connection
  With $hcon
    .Type = "sqlite3"  
    .Host = User.Home &/ "Prueba/Bases/"
    .Name = ""    
  End With
  $hcon.Open
  
  If Not $hcon.Databases.Exist(basenombre) Then
    $hcon.Databases.Add(basenombre)
    'Wait 0.3 'Eliminado
    $hcon.Close
    $hcon.Name = basenombre
    $hcon.Open
  Endif
  
End

Public Sub CrearTabla()
  
  Dim hTable As Table
  
  If Not $hcon.Tables.Exist("juegos") Then
    hTable = $hcon.Tables.Add("juegos")
    With hTable.Fields
      .Add("idjuego", db.Serial)
      .Add("titulo", db.String, 50)
      .Add("categoria", db.String, 50)
      .Add("discos", db.Integer)
      .Add("numdiscos", db.String)      
    End With
    hTable.PrimaryKey = ["idjuego"]
    hTable.Update
  Endif
  
End

Public Sub CerrarConexion()
  
  If $hcon = Null Then Return
  $hcon.Close()
  $hcon = Null  
  
End
 


He añadido antes del bucle While como comentaba Shordi.
$hcon.Begin ' Añadido
  While Not Eof(hfile)
...........
  Wend
  $hcon.Commit 'Añadido
 


He eliminado el tiempo de espera de los 30 mS. ¿ Obligatorio en sqlite ?.
If Not $hcon.Databases.Exist(basenombre) Then
    $hcon.Databases.Add(basenombre)
    'Wait 0.3 'Eliminado
    $hcon.Close
    $hcon.Name = basenombre
    $hcon.Open
  Endif
 


Y poco más. Me he fijado que esta base de datos no usa Result.
Pero funciona.  
Supongo que como es solo la creación de la base de datos, no hay ninguna consulta, por lo tanto no hay un resultado de la misma.

 nuevo_perfilado

¿ Qué opináis del resultado ?. Creo que no tendré que comerme el coco por ahora con los archivos csv..oooooooh..

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Viernes, 29 May 2015, 10:35; editado 2 veces 
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 Insertar Datos De Una Tabla De Base De Dat... Daniel_2901 Bases de Datos 3 Martes, 18 May 2010, 15:04 Ver último mensaje
chen_08
No hay nuevos mensajes Como Crear Algo Parecido A .ini [SOLUCIONADO] kimizombie General 8 Viernes, 06 Agosto 2010, 01:32 Ver último mensaje
Invitado
No hay nuevos mensajes Algo Como Una Grilla ,lisview , Otra Cosa ... metalgearxd General 6 Domingo, 03 Marzo 2013, 21:41 Ver último mensaje
shordi
No hay nuevos mensajes VS 2008 Y Sql-Lite, Muy Lento Al Agregar R... Zehdhe Bases de Datos 4 Martes, 11 Marzo 2014, 04:17 Ver último mensaje
Zehdhe
 

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

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
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