Ich habe eine leere universelle App in Visual Studio 2015 erstellt und nur eine Schaltfläche an die MainPage
hinzugefügt. Dann habe ich den Click-Event-Handler für die Schaltfläche erstellt: myButton_Click(...)
. Dort habe ich den folgenden Code:Kann nicht öffnen/erstellen .db-Datei mit SQLite in Visual Studio (UWP, C++)
void MyTestApp::MainPage::myButton_Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
sqlite3 *testDB;
int result = sqlite3_open("file:///C:/Users/MyName/Downloads/testDB.db", &testDB);
myButton->Content = result.ToString();
}
Wie Sie sehen, ich versuche gerade eine neue Datenbankdatei und das Ergebnis der sqlite3_open()
Funktion zu erstellen, wird auf der Schaltfläche angezeigt. Leider bekomme ich immer Code 14: SQLITE_CANTOPEN
.
In Visual Studio habe ich "SQLite für Universal Windows Platform" über Extras -> Erweiterungen und Updates installiert. Unter dem Lösungs-Explorer habe ich die SQLite für UWP zu den Referenzen hinzugefügt und auch den <sqlite3.h>
Header.
Muss ich der App spezielle Berechtigungen zuweisen, damit sie Dateien erstellen kann oder was mache ich falsch?
Danke. Ihr Link gab mir einige neue Informationen, die ich vorher nicht kannte. Ich habe den Installationsordner jetzt mit '' InstalledLocation''' von Ihrem Link genommen und das '' 'AppX'''-Verzeichnis in meinem VS-Projekt gefunden. Ich habe meinen Code zu '' 'int result = sqlite3_open (" testDB.db ", & testDB) geändert;' '' aber wieder habe ich Code 14. Ich habe auch den kompletten Pfad '' 'file: /// C: /.../ AppX/testDB.db''', wieder Code 14. Unter dem AppData-Speicherort jedoch '' 'sqlite3_open (" file: /// C:/Benutzer/MeinName/AppData/Lokal/Pakete /. ../testDB.db ", & testDB);' '' Ich habe SQLITE_OK. Aber dort wurde keine '' 'testDB.db''' Datei erstellt ... – Varius
' InstalledLocation' ist schreibgeschützt. Verwenden Sie 'ApplicationData.Current', um den lokalen Ordner zu erhalten. Außerdem muss die Syntax "file: ///" nicht verwendet werden. –