Autore Topic: Come creare Database Sqlite con il codice ?  (Letto 324 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.288
  • Ne mors quidem nos iunget
    • Mostra profilo
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.157
  • Tonno verde
    • Mostra profilo
Re: Come creare Database Sqlite con il codice ?
« Risposta #1 il: 05 Maggio 2015, 14:48:36 »
 :-[
Vediamo se riesco a giocarmi subito e ignominiosamente il credito acquisito con milio, io con lo spagnolo ho difficoltà a capirlo bene anche se è abbastanza comprensibile e fatta la doverosa premessa dico che mi sembra che l'amico uruguaiano avesse chiesto come creare un database SQLite con SQL ecco se credi di passarglielo il mio modestissimo suggerimento.
Mi scuso se il codice di costruzione è un copia e incolla, ma credo possa essere abbastanza esplicativo.

Codice: gambas [Seleziona]
' Gambas class file

'' Serve gb.db
'' Manca la gestione degli errori, crea una cartella
'' in home col nome dell'applicazione.
Private $Conn As New Connection
Private sNomeDB As String = "myDb"
Private sPercorsoDB As String ' alla fine sarà User.Home &/ "." & Application.Name &/ "Database" &/ "myDb"


Public Sub Form_Open()
  
  ControlloDB()
  
End


Public Sub AproDB()
  
   $Conn.Close()
   $Conn.Type = "sqlite3"
   $Conn.Host = sPercorsoDB
   $Conn.Name = sNomeDB
   $Conn.Open()

End
'' Lasceremo il database visibile per
'' poterlo controllare direttamente da qui.
'' Con File>Open file... navigheremo
'' fino al database e lo apriremo nell'IDE.
'' Alla fine inseriremo "." & davanti Application
Public Sub ControlloDB()
    
    Dim sPath As String
    
    sPath = User.Home &/ Application.Name
    If Not Exist(sPath) Then Mkdir sPath  
    sPath &= "/Database"
    If Not Exist(sPath) Then Mkdir sPath    
    sPercorsoDB = sPath  
    With $Conn
      .Type = "sqlite3"
      .Host = sPercorsoDB
    End With
    $Conn.Open()
    If Not $Conn.Databases.Exist(sNomeDB) Then
       $Conn.Databases.Add(sNomeDB)
       $Conn.Close()      
       $Conn.Name = sNomeDB
       $Conn.Open()
       CreaTabelle()
    Endif  
    $Conn.Close  
    
End

Public Sub CreaTabelle()

Dim sMioSql As String
Dim hTabella As Result
  
  $Conn.Begin
  
  sMioSql = "CREATE TABLE 'Fogli' ("
  sMioSql &= " 'ID_Fog' INTEGER PRIMARY KEY,"  
  sMioSql &= " 'Fog_Nome' VARCHAR(25),"  
  sMioSql &= " 'Fog_W' REAL,"
  sMioSql &= " 'Fog_H' REAL,"
  sMioSql &= " 'Fog_Et_W' REAL,"
  sMioSql &= " 'Fog_Et_H' REAL,"
  sMioSql &= " 'Fog_n_Et_R' INTEGER,"
  sMioSql &= " 'Fog_n_Et_C' INTEGER,"
  sMioSql &= " 'Fog_Sp_In_W' REAL,"
  sMioSql &= " 'Fog_Sp_In_H' REAL,"
  sMioSql &= " 'Fog_Sp_Et_W' REAL,"
  sMioSql &= " 'Fog_Sp_Et_H' REAL,"
  sMioSql &= " 'Fog_Fusto' BOOLEAN DEFAULT 0"  
  sMioSql &= " );"  
  
  hTabella = $Conn.EXEC(sMioSql)
  
  sMioSql = "CREATE TABLE 'Modelli' ("
  sMioSql &= " 'ID_Mod' INTEGER PRIMARY KEY,"
  sMioSql &= " 'ID_Fog' INTEGER,"  
  sMioSql &= " 'Mod_Nome' VARCHAR(25),"
  sMioSql &= " 'Mod_Corrente' BOOLEAN DEFAULT 0,"
  sMioSql &= " 'Mod_FontSize' REAL DEFAULT 14,"
  sMioSql &= " 'Mod_FontColor' INTEGER DEFAULT 0,"
  sMioSql &= " 'Mod_Font_B' BOOLEAN DEFAULT 0,"
  sMioSql &= " 'Mod_Font_I' BOOLEAN DEFAULT 0,"  
  sMioSql &= " FOREIGN KEY( 'ID_Fog' ) REFERENCES 'Fogli'( 'ID_Fog'"  
  sMioSql &= " ));"
  
  hTabella = $Conn.EXEC(sMioSql)  
    
  $Conn.Commit
  Wait
  $Conn.Close()

End

 :ciao:
« Ultima modifica: 05 Maggio 2015, 15:06:12 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro