2011-10-20 16 views
7

È possibile utilizzare un database Sqlite in un'applicazione javascript windows 8 (winRT)?Posso usare Sqlite in un'applicazione WinRT (javascript)?

Quello che voglio ottenere è scaricare un database Sqlite e archiviarlo nella memoria locale prima dell'uso. Credo che qualche forma di archiviazione locale sia disponibile per le applicazioni WinRT basate su javascript, ma voglio sapere se Sqlite è utilizzabile in questo scenario.

Sono anche consapevole del fatto che l'implementazione .Net di Sqlite utilizza alcune chiamate Win32 e credo che queste non saranno consentite dal processo di cerififcation delle app di windows8.

risposta

8

JavaScript ha HTML5 indicizzatoDB disponibile per impostazione predefinita.

Per quanto riguarda SQLite, è possibile utilizzarlo, a condizione che sia dapprima racchiuso come componente WinRT che può essere utilizzato da JavaScript, ad es. usando C++/CX. La sua superficie API non è così grande, quindi è certamente possibile. Ho provato a compilare SQLite per Metro un po 'di tempo fa, e c'erano solo alcune chiamate API Win32 che non erano disponibili nel contenitore dell'app e dovevano essere sostituite - niente di importante.

2

Date un'occhiata a questo: http://sqlwinrt.codeplex.com/

+2

questo è un wrapper WinRT, questo non cambia il fatto che sqlite ancora utilizza le chiamate Win32 che non sono ammessi in metropolitana – sarvesh

+0

@iaimtomisbehave non sono sicuro che lei ha ragione Vedere questo articolo http..: //visualstudiomagazine.com/articles/2013/02/27/build-a-windows-store-app-using-sqlite.aspx che indica che è possibile utilizzare sqlite in un'app di Windows Store e che proviene direttamente da MSFT. – satur9nine

+0

@ satur9nine quella particolare libreria è s fino a solo un involucro. Quando ho fatto questo commento, sqlite non era compatibile con winrt ma da allora sqlite ha aggiunto il supporto per esso. – sarvesh

5

Abbiamo creato SQLite3-WinRT per questo. Si tratta di un wrapper di componenti WinRT per SQLite che supera la certificazione delle app in stile metro di Windows. Include anche un'astrazione JavaScript facile da usare.

1

Sì, il database SQLite è ora supportato in Windows 8 RTM. Ora puoi scaricare tutto (Windows 8, strumenti, campioni) da Windows Dev Center.

1

Sì È possibile utilizzare SQLite in WinRT. Basta seguire seguenti operazioni

  1. Creare un nuovo progetto.
  2. Vai riferimenti, quindi fare clic destro sui riferimenti Vi si aprirà Gestisci NuPackage Clicca su questo.
  3. Nella ricerca online per il pacchetto Sqlite-net, inserire quel pacchetto.
  4. Anche in questo caso fare clic destro sulle referenze e cliccare su aggiungi refrences, non nella sezione di estensione si ottengono due riferimento incontrollato MS Visual C++ fase di esecuzione e di esecuzione Sqlite di Windows. controlla sia il riferimento che aggiungi riferimenti. Ci saranno due file CS nel tuo solution explorer.
  5. ora scaricare un file ZIP da https://github.com/doo/SQLite3-WinRT Esso vi fornirà la cosa wrapper per utilizzare i file cs nel progetto.
  6. Decomprimere in qualsiasi posizione.
  7. Ora nel progetto di andare a file-> ADD-> esistente Progetto-> e sfoglia la tua posizione unzip. Lì si otterrà un file SQLite3Component.vcxproj all'interno di SQLite3Component. Aggiungi quel file.
  8. Ora il progetto wrapper è incluso nel progetto.
  9. Ora nei file decompressi si otterrà cartella SQLite3JS copiare tale cartella e incollare nella soluzione esploratore.
  10. Ora sei pronto per usare sqlite nel tuo progetto.
  11. provare a costruire il vostro progetto si mostrerà due di errore che winres.h file non c'è. Per quello vai nella posizione dell'errore rinominalo winresrc.h e costruiscilo di nuovo. Ora costruirà e puoi usare sqlite nel tuo progetto.
    1. Da utilizzare.js file di SQLite3JS, Fornire lo src del file js come SQLite3JS \ js \ SQLite3.js nella pagina html in cui si utilizzerà sqlite. Qui vi sto dando qualche esempio per usare sqlite in js // Questo creerà il nome del database db.sqlite e cercherò di creare una tabella Nome Note. Se non è presente, var dbPath = Windows.Storage.ApplicationData.current.localFolder.path + '\ db.sqlite'; SQLite3JS.openAsync (dbPath) .then (function (d ter) { ritorno db.runAsync ('CREATE TABLE Note (id TESTO PRIMARY KEY, note di testo)'); Spero che tutti questi step vi aiuterà fuori
    2. .
+0

Ciao ... ho provato i tuoi passi sopra. Ma sto ottenendo un errore "compobj.dll è troppo vecchio per l'ole2.dll inizializzato". Qualche idea su come risolvere questo? – meetme

Problemi correlati