SQLite Datenbank auslesen

  • Antworten:9
  • OffenNicht stickyNicht beantwortet
  • Forum-Beiträge: 13

16.02.2013 21:59:20 via Website

Ich habe eine SQLite datenbank die ich downloade! Nur jetzt hänge ich an dem auslesen denn ich finde einfach kein simples Tutorial wie ich aus dem download ordner die datenbank auslesen kann?!
Bin für jede sinnvolle Antwort dankbar :D
  • Forum-Beiträge: 22.351

17.02.2013 13:50:33 via App

Hallo Gregor,

pushen wird bei uns im Forum nicht gerne gesehen. Bitte hab etwas Geduld - wenn jemand eine Antwort für dich hat, wird er sich sicher hier melden.

Viele Grüße,
Andy


OnePlus 3 (Resurrection Remix 5.8.2)
LG G Watch

Regeln | unsere Mods & Admins

  • Forum-Beiträge: 8

18.02.2013 10:26:48 via Website

Hi Gregor,
im folgenden Code, findest Du dass Ein- Auslesen der SQLite von Android mit Javascript. Wo die (default SQlite) auf dem System liegt, weiss ich nicht. Und eine irgendwo (SDcard) gespeicherte weiß ich auch nicht, wie man die anspricht. Einfach mal ausprobieren :grin:
Für das Ansprechen mit einer richtigen App (Eclipse..) findest Du reichlich Tutorials im Web.

Grüße Ralphi

1<!DOCTYPE html>
2<html xmlns="...www.w3.org/1999/xhtml" xml:lang="en">
3 <head>
4 <title>JS DB Test</title>
5 <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
6 <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type" />
7 <meta content="yes" name="apple-mobile-web-app-capable" />
8 <meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;"/>
9 <script type="text/javascript">
10
11 var mydb = null;
12
13 function initDb() {
14 var shortName = 'testDb';
15 var version = '1.0';
16 var displayName = 'test db';
17 var maxSize = 1048576; // in bytes
18 mydb = window.openDatabase(shortName, version, displayName, maxSize);
19
20 }
21
22 function init() {
23 try {
24 if (!window.openDatabase) {
25 document.getElementById('status').innerHTML = "<b style='color: red;'>[ERROR]</b> No DB support...";
26 } else {
27 initDb();
28 createTables();
29 displayPerson(null);
30 }
31 } catch(e) {
32 if (e == INVALID_STATE_ERR) {
33 document.getElementById('status').innerHTML = "<b style='color: red;'>[ERROR]</b> Invalid database version.";
34 } else {
35 document.getElementById('status').innerHTML = "<b style='color: red;'>[ERROR]</b> Unknown error "+e+".";
36 }
37 return;
38 }
39 }
40
41 errorHandler = function (transaction, error) {
42 document.getElementById('status').innerHTML = "<b style='color: red;'>[ERROR]</b> Failure: " + error.message;
43 return true;
44 }
45
46 // fire and forget...
47 nullDataHandler = function (transaction, results) { }
48
49 // create tables for the database
50 function createTables() {
51 try {
52 mydb.transaction(
53 function(transaction) {
54 transaction.executeSql('CREATE TABLE IF NOT EXISTS person(id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, first_name VARCHAR NOT NULL, last_name VARCHAR NOT NULL);', [], nullDataHandler, errorHandler);
55 document.getElementById('status').innerHTML = "<b style='color: green;'>[OK]</b>Created table 'person'";
56 });
57 } catch(e) {
58 document.getElementById('status').innerHTML = "<b style='color: red;'>[ERROR]</b> Unable to create db 'person' "+e+".";
59 return;
60 }
61 }
62
63 function insertData() {
64 var firstName = document.personForm.firstName.value;
65 var lastName = document.personForm.lastName.value;
66 if (firstName == "" || lastName == "") {
67 document.getElementById('status').innerHTML = "<b style='color: red;'>[ERROR]</b> 'First name' and 'Last name' are required fields!";
68 } else {
69 try {
70 mydb.transaction(
71 function(transaction) {
72 transaction.executeSql("insert into person (first_name, last_name) VALUES ('"+firstName+"', '"+lastName+"');", [],
73 function (transaction, results) {
74 if (!results.rowsAffected) {
75 document.getElementById('status').innerHTML = "<span style='color: red;'>No rows affected</span>";
76 } else {
77 document.personForm.firstName.value = "";
78 document.personForm.lastName.value = "";
79 document.getElementById('status').innerHTML = "<span style='color: green;'>Inserted row with id "+results.insertId+"</span>";
80 displayPerson(results.insertId);
81 }
82 }, errorHandler);
83 });
84 } catch(e) {
85 document.getElementById('status').innerHTML = "<b style='color: red;'>[ERROR]</b> Unable to perform an INSERT "+e+".";
86 }
87 }
88 }
89
90 displayPerson = function(personId) {
91 var query;
92 if (personId != null) {
93 query = "SELECT * FROM person where id="+personId;
94 } else {
95 query = "SELECT * FROM person";
96 }
97 try {
98 mydb.transaction(
99 function(transaction) {
100
101 transaction.executeSql(query,
102 [ ],
103 function (transaction, results) {
104 for (var i=0; i<results.rows.length; i++) {
105
106 var row = results.rows.item(i);
107 var tr = document.createElement("tr");
108
109 var tdId = document.createElement("td");
110 var idText = document.createTextNode(row['id']);
111 tdId.appendChild(idText);
112 tr.appendChild(tdId);
113
114 var tdFn = document.createElement("td");
115 var fnText = document.createTextNode(row['first_name']);
116 tdFn.appendChild(fnText);
117 tr.appendChild(tdFn);
118
119 var tdLn = document.createElement("td");
120 var lnText = document.createTextNode(row['last_name']);
121 tdLn.appendChild(lnText);
122 tr.appendChild(tdLn);
123
124 document.getElementById("person_data").appendChild(tr);
125 }
126 }, function (transaction, error) {
127 document.getElementById("status").innerHTML = "Sth. went wrong. Failure code: " + error.code + "<br />Message: " + error.message;
128 });
129 });
130 } catch(e) {
131 document.getElementById('status').innerHTML = "<b style='color: red;'>[ERROR]</b> Unable to select data from the db "+e+".";
132 }
133 }
134
135 </script>
136 </head>
137 <body style="font-family: Helvetica, Verdana, Arial;">
138 <button onclick="init()">start</button>
139 <h1>Person DB</h1>
140 <h4>Status</h4>
141 <div id="status" style="margin-bottom: 5px;"></div>
142 <h2>Persons</h2>
143 <table border="1" cellspacing="2" id="person_data">
144 <tr>
145 <th><b>ID</b></th>
146 <th><b>First name</b></th>
147 <th><b>Last name</b></th>
148 </tr>
149 </table>
150 <h2>Create a new person</h2>
151 <form name="personForm">
152 First name: <input style="width: 100px;" type="text" name="firstName" id="firstName" /><br />
153 Last name: <input style="width: 100px;" type="text" name="lastName" id="lastName" /><br />
154 <br />
155 <input type="button" name="insert" value="insert" onclick="insertData()" />
156 </form>
157 </body>
158</html>
  • Forum-Beiträge: 13

18.02.2013 10:55:09 via Website

Ich glaube ich habe mich falsch ausgedrückt! Ich habe eine App die eine Sqlite db downloaded! Da aber hänge ich an dem auslesen da sie ja im download ordner liegt und ich sie nirgendshin kopieren möchte! :)

Du schreibst zwar das ich da viele tutorials im inet finde! Tu ich aber nicht! wär toll wenn du/ihr ein tutorial findet
  • Forum-Beiträge: 2.545

18.02.2013 13:07:47 via Website

static File getDownloadCacheDirectory()
Gets the Android download/cache content directory.

Ist das nicht, was du suchst?
Dann müsstest du genauer erläutern, was dein Problem ist.
  • Forum-Beiträge: 13

18.02.2013 14:25:46 via Website

and dev
Dann müsstest du genauer erläutern, was dein Problem ist.

Folgendes:
--> Meine app downloaded ein sqlite file also test.db !
--> Dieses File möchte ich auslesen, denn in zahlreichen tutorials finde ich nur wie man eine sqlite datenbank erstellt mit android!
--> Ich möchte auch File also im download ordner lassen.. :D
--> Das problem liegt daran, dass ich ja irgendwie sagen muss wo dieses file liegt also der pfad und wie ich es dann auslese! Dazu finde ich aber kein Tutorial!

Ich weiss ich kann nicht sooo gut erklären aber vielleicht wisst ihr jetzt was ich meine?! :D

Grüße, Gregor !

— geändert am 18.02.2013 14:26:47

  • Forum-Beiträge: 2.545

18.02.2013 19:33:16 via Website

Ich verstehs immer noch nicht ;)
Deine Beschreibung beihaltet mE 2 potentielle Fragen - entweder du weißt nicht, wohin die DB herunter geladen wurde (das war meine erste Antwort), oder du weißt nicht, wie man eine DB öffnet:

db = SQLiteDatabase.openDatabase(path, null, SQLiteDatabase.OPEN_READWRITE);

Beides wäre aber in 10s auch von Google zu erfahren gewesen, daher vermute ich mal, das dein Problem woanders liegt.
  • Forum-Beiträge: 13

18.02.2013 19:40:47 via Website

Jap ich habs danke dir and dev! es war das mit dem öffnen!! Danke dir nochma! ;)