Autore Topic: [RISOLTO] SQLITE "bad database name"  (Letto 465 volte)

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
[RISOLTO] SQLITE "bad database name"
« il: 29 Giugno 2017, 12:19:59 »
ragazzi mi date un'occhiata a questo codice?
togliete pure quello che ovviamente non trova (i dati nella gridview) ....

mi genera un errore nel nome del database che prima (una settimana fa') non mi triggerava ....

Codice: [Seleziona]
Public Sub Button_SavePlaylist_Click()
Dim vConnessione As New Connection
Dim vPercorso As String ' variabile per il percorso in cui creare il db
Dim vDatabase As String ' variabile per il nome che diamo al database
Dim vTabella As Table
Dim vTabellaUno As String ' variabile per la creazione della tabella UNO e dei campi
Dim vTabellaDue As String ' variabile per la creazione della tabella DUE e dei campi
Dim vRisultato As Result

Dim I As Integer

  If GridView_Media.Rows.Count = 0 Then Return

  Dialog.Path = "Playlist_" & Format(Now, "yyyymmdd-hhnnss") & ".sqlite3"
  Dialog.Filter = ["*.sqlite;*.sqlite3", "sqlite format database files"]
  If Dialog.SaveFile() Then
    Return
  Endif

  'se siamo qui' allora abbiamo deciso di creare un nuovo file per la playlist

  If File.Ext(Dialog.Path) = "" Then
    Dialog.Path = Dialog.Path & ".sqlite3"
  Endif

  vPercorso = File.Dir(Dialog.Path) ' definisce il percorso del database
  vDatabase = File.Name(Dialog.Path) ' definisce il nome del database
 
  vTabellaUno = "CREATE TABLE 'PlaylistContent'" & ' nome della tabella e dei campi che si andrà a creare
                          "('id' INTEGER PRIMARY KEY," & ' chiave primaria
                          "'Time' VARCHAR(8) Default Null," &         'nome del campo, tipo e valore predefinito
                          "'Path' VARCHAR(55) Default Null," &
                          "'MediaType' VARCHAR(20) Default Null," &   'STATUS e' una proprieta' locale che viene definita al caricamento
                          "'lenght' VARCHAR(20) Default Null," &
                          "'WARN' VARCHAR(55) Default Null);"          'MEDIA e' una proprieta' locale che viene definita al caricamento
 
  With vConnessione
  .Type = "sqlite3" ' indicazione del tipo di database da utilizzare
  .Host = vPercorso
  .Login = ""
  .Password = ""
  End With
 
  If Exist(Dialog.Path) Then ' esiste il file della playlist, chiedo se cancellarlo o meno
    Select Case Message.Question("Do you want to overwrite playlist file?", "YES", "NO", "CANCEL")
        Case 2
          Return
        Case 3 'in ogni altro caso esco dalla procedura (verificare se devo comunque riscrivere STOP
          Return
      End Select
  End If
 
  'se siamo qui' vogliamo scrivere il file della playlist
 
  vConnessione.Open() ' apre la connessione
  If Not vConnessione.Databases.Exist(vDatabase) Then ' verifica che il db non esista già
  vConnessione.Databases.Add(vDatabase) ' crea il database
  vConnessione.Close() ' chiude la connessione
  vConnessione.Name = vDatabase ' alla connessione assegna il nome del database
  vConnessione.Open() ' riapre la connessione
  vRisultato = vConnessione.Exec(vTabellaUno) ' aggiunge al database la tabella con i campi, come sopra definito
  Wait 1
    For i = 0 To GridView_Media.Rows.Count - 1
      'inserisci un nuovo record per ogni riga
      vRisultato = vConnessione.Create("PlaylistContent")
      vRisultato["id"] = i
      vRisultato["Time"] = GridView_Media[i, 0].Text
      vRisultato["Path"] = GridView_Media[i, 1].Text
      vRisultato["MediaType"] = GridView_Media[i, 2].Text
      vRisultato["lenght"] = GridView_Media[i, 4].Text
      vRisultato["WARN"] = GridView_Media[i, 5].Text
      vRisultato.Update
      vConnessione.Commit
    Next
  Endif
  vConnessione.Close() 'chiude la connessione

  Message.Info("Playlist file created in:" & gb.crlf & Dialog.Path, "ok")

End
« Ultima modifica: 30 Giugno 2017, 11:47:33 da allegfede »
se corri, morirai stanco (motto degli sniper)

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:SQLITE "bad database name"
« Risposta #1 il: 29 Giugno 2017, 12:31:55 »
Io vorrei che il file di database avesse una forma tipo: playlist_24-12-2017_214500.sqlite ma mi da' errore nel nome del database
Anche lo genero senza estensione: "playlist_24-12-2017_214500",  gambas mi restituisce l'errore sopra citato.
Se il nome del "file" di database e'  "pippo" nessun problema e mi scrive il file di database pippo nella cartella opportuna .....
se corri, morirai stanco (motto degli sniper)

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.273
  • Chi parla poco dice tanto...
    • Mostra profilo
Re:SQLITE "bad database name"
« Risposta #2 il: 29 Giugno 2017, 18:46:01 »
Io vorrei che il file di database avesse una forma tipo: playlist_24-12-2017_214500.sqlite ma mi da' errore nel nome del database
Anche lo genero senza estensione: "playlist_24-12-2017_214500",  gambas mi restituisce l'errore sopra citato.
Se il nome del "file" di database e'  "pippo" nessun problema e mi scrive il file di database pippo nella cartella opportuna .....

La butto lì... e se fosse il '-' la causa?

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:SQLITE "bad database name"
« Risposta #3 il: 29 Giugno 2017, 19:23:31 »
Ha ragione il grande Milio  :ciao:

Se lo nomini così non hai problemi "playlist_24_12_2017_214500.sqlite"

 :ciao: :ciao:
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro

Offline allegfede

  • Gran Maestro dei Gamberi
  • *****
  • Post: 738
    • Mostra profilo
Re:SQLITE "bad database name"
« Risposta #4 il: 30 Giugno 2017, 11:46:51 »
yes, e' il "-" , dovro' fare un parser perche' il nome del file puo' essere arbitrariamente scelto (il mio formato e' un suggerimento)

grazie cari. Pero' che sqlite abbia delle ideosincrasie sul nome del file (diverse da quelle di  linux o del os dove e' in esecuzione) e' una pecca non di poco conto ....
« Ultima modifica: 30 Giugno 2017, 11:47:50 da allegfede »
se corri, morirai stanco (motto degli sniper)

Offline Gianluigi

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 4.244
  • Tonno verde
    • Mostra profilo
Re:SQLITE "bad database name"
« Risposta #5 il: 30 Giugno 2017, 12:22:45 »
yes, e' il "-" , dovro' fare un parser perche' il nome del file puo' essere arbitrariamente scelto (il mio formato e' un suggerimento)

grazie cari. Pero' che sqlite abbia delle ideosincrasie sul nome del file (diverse da quelle di  linux o del os dove e' in esecuzione) e' una pecca non di poco conto ....

Intanto che fai il replace di "'" con "''" fai anche quello di "-" con "_"  :D

P.S. Ho ingrandito e colorato in modo che si capisca che parliamo degli apostrofi... (e non paragrafi  :rolleyes:)
« Ultima modifica: 30 Giugno 2017, 15:01:20 da Gianluigi »
nuoto in attesa del bacio di una principessa che mi trasformi in un gambero azzurro