View Full Version : [VB.Net] SQLite e Windows 7
martino.ugolini
23-02-2010, 20:29
Salve,
Ho appena finito un programma che inserisce, elimina ecc. dati da un database SQLite (.s3db). Ho fatto un pacchetto di installazione, e l'ho distribuito. Sul mio PC (Windows Vista) funziona, e su altri (Anche Windows Vista o XP) funziona. Ora uno ha installato il programma su windows 7, e lì non funziona. C'è bisogno di qualche .dll specifica per windows 7 (Se sì, dove la scarico), o ha a che fare con qual' cosaltro???
PS: Il programma l'ho compilato con Visual Studio 2008 su Vista
Conto sull'aiuto dei tanti esperti di questo forum
martino.ugolini
24-02-2010, 19:30
Oggi mi ha informato un amico, che anche da lui non funziona (Lui ha Vista)
Mi potete semplicemente dire cosa devo fare per distribuire applicazioni von database sqlite, e quali prerequisiti, tranne il .Net framework, richiede il PC???
bobbytre
24-02-2010, 19:51
ma sqlite lo usi tramite libreria esterna ? in questo caso devi distribuire anche il file sqlite.dll
tomminno
24-02-2010, 22:19
Oggi mi ha informato un amico, che anche da lui non funziona (Lui ha Vista)
Mi potete semplicemente dire cosa devo fare per distribuire applicazioni von database sqlite, e quali prerequisiti, tranne il .Net framework, richiede il PC???
Scusa la domanda: con quale libreria .NET per Sqlite hai sviluppato?
Hai usato il P/Invoke sulle funzioni della dll nativa?
Se hai usato una libreria tipo System.Data.SQLite ti basta distribuire quella, altrimenti devi distribuire la libreria nativa.
Non hai un log dell'eccezione?
martino.ugolini
25-02-2010, 20:21
Io uso la libreria system.data.sqlite, che ho già inserito nel pacchetto installazione. Il programma non fa eccezzioni, perchè le funzioni hanno un try. Adesso facio una versione del programma senza il try, e poi vi spedisco l'errore
tomminno
25-02-2010, 20:34
Può essere che non abbia i permessi di scrittura sul file?
Se il database si trova in Program Files l'utente potrebbe non avere i permessi di scrittura.
In ogni caso il log dell'eccezione svelerebbe il problema.
martino.ugolini
27-02-2010, 16:55
Allora, c'è un (forse grosso) problema: Giacche io vivo in germania, il mio amico ha un PC tedesco. Il log così è in tedesco, e inglese. Se ci sono parti che volete aver tradottto, ve le traduco subito:D . Le parti più piccole ve le ho tradotte tra parentesi
************** Ausnahmetext ************* (ECCEZIONE)
System.Data.SQLite.SQLiteException: Attempt to write a read-only database
attempt to write a readonly database ("BEI" VUOL DIRE IN)
bei System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)
bei System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
bei System.Data.SQLite.SQLiteDataReader.NextResult()
bei System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
bei System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
bei System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
bei Verba_disco_1._1.neue_lektion.insert_command(String stringasql) in D:\MARTINO\Documents\Visual Studio 2008\Projects\Verba disco 1.01.11 - Beta\Vok 1.10.00\neue_lektion.vb:Zeile 42.
bei Verba_disco_1._1.neue_lektion.fertig_Click(Object sender, EventArgs e) in D:\MARTINO\Documents\Visual Studio 2008\Projects\Verba disco 1.01.11 - Beta\Vok 1.10.00\neue_lektion.vb:Zeile 164.
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message& m)
bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
bei System.Windows.Forms.Button.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Geladene Assemblys ************** (ASSEMBLY CARICATO)
mscorlib
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3603 (GDR.050727-3600).
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
mscorlib.resources
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3603 (GDR.050727-3600).
CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
verba disco 1.01
Assembly-Version: 1.0.0.0.
Win32-Version: 1.0.0.0.
CodeBase: file:///C:/Program%20Files/Martino%20Software/Verba%20Disco%201%20beta/verba%20disco%201.01.exe.
----------------------------------------
Microsoft.VisualBasic
Assembly-Version: 8.0.0.0.
Win32-Version: 8.0.50727.3053 (netfxsp.050727-3000).
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll.
----------------------------------------
System
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Windows.Forms
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System.Drawing
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System.Runtime.Remoting
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll.
----------------------------------------
System.Windows.Forms.resources
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------
System.Data.SQLite
Assembly-Version: 1.0.65.0.
Win32-Version: 1.0.65.0.
CodeBase: file:///C:/Program%20Files/Martino%20Software/Verba%20Disco%201%20beta/System.Data.SQLite.DLL.
----------------------------------------
System.Data
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
CodeBase: file:///C:/Windows/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll.
----------------------------------------
System.Transactions
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
CodeBase: file:///C:/Windows/assembly/GAC_32/System.Transactions/2.0.0.0__b77a5c561934e089/System.Transactions.dll.
----------------------------------------
System.Configuration
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
----------------------------------------
System.Xml
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3074 (QFE.050727-3000).
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
System.EnterpriseServices
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.3053 (netfxsp.050727-3000).
CodeBase: file:///C:/Windows/assembly/GAC_32/System.EnterpriseServices/2.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll.
----------------------------------------
************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.
Zum Beispiel:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
Ausnahmen an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.
tomminno
27-02-2010, 17:26
************** Ausnahmetext ************* (ECCEZIONE)
System.Data.SQLite.SQLiteException: Attempt to write a read-only database
attempt to write a readonly database
Cvd mancano i permessi di scrittura sul file del db.
Non so come mai (probabilmente per politiche di lock) ma sono necessari i permessi di scrittura anche sulla cartella che contiene il file del db.
martino.ugolini
27-02-2010, 22:51
Questo probblema cìè solo da alcuni PC. come si fa a dare i diritti di scritturta??? Come si risolve il probblema???
bobbytre
27-02-2010, 23:44
avviando il programma come amministratore hai provato ?
tomminno
28-02-2010, 11:24
Questo probblema cìè solo da alcuni PC. come si fa a dare i diritti di scritturta??? Come si risolve il probblema???
Forse dipende più che altro dai privilegi dell'utente che effettua il logon.
Dove si trova il file?
Se si trova in Programmi/Program Files e l'utente non è amministratore il software non ha i permessi di scrittura.
Dovresti mettere il file in una delle cartelle recuperabili tramite Environment.GetFolderPath a seconda della logica del programma dovresti decidere se il database è a comune a tutti gli utenti della macchina oppure ogni utente ha il suo e scegliere la cartella di conseguenza.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.