ALLisCHAOS Δημοσ. 17 Ιανουαρίου 2014 Δημοσ. 17 Ιανουαρίου 2014 Καλήσπερα! θέλω να δημιουργήσω μια βάση δεδομένων σε μια android εφαρμογη και στη συνέχεια με βάση τα στοιχεία που θα δίνει ο χρήστης θα πέρνει τα κατάλληλα αποτέλεσμα, σκεφτήτε κάτι σαν ένα ερτολογιο να υπάρχει η βάση και αν πχ ο χρήστης δώσει σαν όνομα Χρήστος να πέρνει οτι γιορτάζει 25 Δεκεμβρίου..ότι βιντάκι έχω δει στο youtube οι περισσότεροι (αν όχι όλοι) φτιάχνουν μια βάση στην οποία ο χρήστης προσθέτει πράγματα στη συνέχεια...εγώ όμως δε θέλω κάτι τέτοιο..ξέρετε μήπως κανένα βίβλιο βίντεο,site οτίδηποτε μπορεί να με βοηθείσει? ευχαριστώ
warlock9_0 Δημοσ. 17 Ιανουαρίου 2014 Δημοσ. 17 Ιανουαρίου 2014 φτιάχνεις την βάση σου στο pc, την βάζεις στον φάκελο assets και μετά την πρώτη φορά που ξεκινάς την εφαρμογή την κάνεις copy στον data φάκελο της εφαρμογής σου η βάση αν θυμάμαι καλά το μόνο που χρειάζεται είναι να ονομάσεις σε κάθε πίνακα το πρωτεύον κλειδί _id και link http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/ 1
baggs Δημοσ. 23 Ιανουαρίου 2014 Δημοσ. 23 Ιανουαρίου 2014 Επισης ακομα πιο χρησιμο ειναι να μαθεις για τους ContentProviders, ωστε να μπορεις να χρησιμοποιεις τη βαση σου και απο αλλες εφαρμογες. Σου δινει μεγαλες ευκολιες η ιδεα του ContentProvider και στη δημιουργια της βασης και στο πως τη δουλευεις. http://developer.android.com/guide/topics/providers/content-providers.html Μπορει να φανει καπως στη αρχη αλλα μετα τη πρωτη υλοποιηση δε θα το κανεις αλλιως
ALLisCHAOS Δημοσ. 12 Φεβρουαρίου 2014 Μέλος Δημοσ. 12 Φεβρουαρίου 2014 επαναφέρω λίγο το θέμα guys, #warlock χτίζω όλη τη διαχείρηση της βάσης συμφωνα με το link που πόσταρες αλλά μου βγάζει error στη createDataBase() πιάνει το exception αφού πάει να καλέσει την copyDataBase() "error copying database" παίζει να ξέρεις ή κάποιος άλλος τι μπορεί να φταίει?
mad-proffessor Δημοσ. 12 Φεβρουαρίου 2014 Δημοσ. 12 Φεβρουαρίου 2014 Στο τηλέφωνο τη κάνεις copy ή σε emulator;
warlock9_0 Δημοσ. 13 Φεβρουαρίου 2014 Δημοσ. 13 Φεβρουαρίου 2014 μου μυρίζει οτι έχεις κάποιο λάθος στα paths γιατί δεν κάνει κάτι , απλώς αντιγράφει από ένα stream σε ένα άλλο
ALLisCHAOS Δημοσ. 13 Φεβρουαρίου 2014 Μέλος Δημοσ. 13 Φεβρουαρίου 2014 το DB_PATH="/data/data/com.example.ΑppName/databases/" και το DB_NAME="example" ίσως έχω λάθος τον τύπο του αρχείου της βάσεις? το έχω με κατάληξη .db μέσα στο φάκελο assets edit: παίζει να χρειάζεται να βάλω κανένα permission στο manifest? γι αυτό να μην τρέχει?
warlock9_0 Δημοσ. 13 Φεβρουαρίου 2014 Δημοσ. 13 Φεβρουαρίου 2014 πρώτα άλλαξε το catch να τυπώνει το exception να δούμε πρέπει να γράψεις στο dbname και την κατάληξη επίσης υπάρχει περίπτωση να μην υπάρχει ο φάκελος databases και να πρέπει να τον δημιουργήσεις πρώτα δικαιώματα δεν χρειάζεται επίσης δοκίμασε αντί να έχεις harcoded το path DB_PATH = this.getApplicationInfo().dataDir+ File.separator +"databases" private void copyDataBase() throws IOException{ //Open your local db as the input stream InputStream myInput = myContext.getAssets().open(DB_NAME); // alla3a ki auto ligo -- Path to the just created empty db String outFileName = DB_PATH + File.separator + DB_NAME; //dimiourgei to fakelo new File(DB_PATH).mkdir(); //Open the empty db as the output stream OutputStream myOutput = new FileOutputStream(outFileName); //transfer bytes from the inputfile to the outputfile byte[] buffer = new byte[1024]; int length; while ((length = myInput.read(buffer))>0){ myOutput.write(buffer, 0, length); } //Close the streams myOutput.flush(); myOutput.close(); myInput.close(); }
ALLisCHAOS Δημοσ. 13 Φεβρουαρίου 2014 Μέλος Δημοσ. 13 Φεβρουαρίου 2014 τα εχω κάνει όλα , αλλά πάλυ τπτ :/ με το exception τι εννοεις να αλλάξω το catch? public void createDataBase() throws IOException{ boolean dbExist=checkDataBase(); if(dbExist){ } else{ this.getReadableDatabase(); try{ copyDataBase(); } catch(IOException e){ throw new Error("Error Copying DataBase "); // αυτο ειναι το exception Που πιανει } } }
warlock9_0 Δημοσ. 13 Φεβρουαρίου 2014 Δημοσ. 13 Φεβρουαρίου 2014 αντι για throw new error αλλαξε το σε system.out.println(e.tostring()) για να δουμε τι γραφει
ALLisCHAOS Δημοσ. 13 Φεβρουαρίου 2014 Μέλος Δημοσ. 13 Φεβρουαρίου 2014 λοιπόν πετάειcant create dbκαι fileNotFoundException (για το path )open failed: ENOENT Πωωωω ρε φίλε καταρχήν 100000 sorry για όλον αυτόν το χρόνο που σου έφαγα όλο το λάθος ήταν σε ένα γράμμα στο path το άλλαξα και τώρα τρέχει κομπλέ ΥΓ: μπορείς να μου ρίξεις όσο βρίσιμο θες Νew Edit: αλλά όταν το άλλαξα από harcoded το path στο άλλο δεν θα επρεπε να ετρεχε???τες πα αφου λύθηκε , σε ευχαριστώ ξανα
warlock9_0 Δημοσ. 13 Φεβρουαρίου 2014 Δημοσ. 13 Φεβρουαρίου 2014 ε κάτι θα μας ξέφυγε και από το αυτόματο το path
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα