Page 1 of 1
JAVA - Δημιουργία βάσης δεδομένων ACCESS
Posted: Thu Apr 28, 2005 7:53 pm
by semika
Υπάρχει κάποιος κώδικας για να δημιουργήσω από την αρχή μία βάση δεδομένων ACCESS με Java?
Πρέπει να τη δηλώσω και στο odbc για να κάνω μετά connection? Υπάρχει τρόπος να τη δημιουργώ και να συνδέομαι χωρίς να τη έχω δηλώσει??
Ευχαριστώ πολύ

Posted: Thu Apr 28, 2005 8:31 pm
by Einherjar
νομίζω ότι δε μπορείς να φτιάξεις εκ του μηδενός μια βάση από το πρόγραμμά σου όχι μόνο με Java αλλά γενικότερα.
Posted: Thu Apr 28, 2005 9:20 pm
by AmmarkoV
Όλα γίνονται , μόνο του `σπανού τα γένια δεν γίνονται..
Από ότι καταλαβαίνω (αν καταλαβαίνω σωστά

) semika θές κάποια πράγματα (πχ κάτι απλό , ένα array με ονόματα) να τα κάνεις import σε access μέσα από ένα πρόγραμμα σου που τρέχει σε Java..!
Και αφού τελειώσει το πρόγραμμα σου , το αποτέλεσμα να τρέχει απευθείας στην access.. Βλέπε double click!
Πρέπει να μελετήσεις τα αρχειάκια που μπορεί να ανοίγει η access (να βρείς τα specifications τους , δυστυχώς δεν μπορώ να βοηθήσω σε αυτό-δεν ξέρω ούτε το extention των αρχείων access

) και να μάθεις στο προγραμμά σου να γράφει αρχεία τέτοιου είδους..!
Θα χρειαστείς αρκετή πραγματικά προγραμματιστική δουλειά για να τα καταφέρεις..
Εδώ ίδρωσα για να διαβάζω/γράφω BMP που είναι και απλά..
BTW τι εννοείς να την δηλώσεις στο odbc? και τι connection?
Posted: Thu Apr 28, 2005 9:37 pm
by semika
Ευχαριστώ και τους 2 σας...
Και εγώ απόσο έψαξα νομίζω οτι δε γίνεται η δημιουρία από το μηδέν (στη Java γιατί στη .NET το έχω κάνει).
Μάλλον πρέπει να υπάρχει κάπου μια άδεια βδ και να τη γεμίζεις εσύ...
Αλλά το μελετάω ακόμη... Αν έχει άλλος καμία ιδέα ας ποστάρει.
Εννοώ να τη δηλώσω στο odbc για να μπορώ να τη προσπελάσω.. Δηλ να της δώσω DSΝ.
Posted: Thu Apr 28, 2005 11:39 pm
by tsilochr
Νομίζω ότι δεν θα μπορέσεις να φτιάξεις νέα βάση δεδομένων μέσα από Java. Κάπου μπλέκει το θέμα με τα copyrights. Και στο .ΝΕΤ που υπάρχει αυτή η δυνατότητα, γίνεται με ένα έτοιμο dll που δίνει η MS.
Posted: Fri Apr 29, 2005 12:00 am
by sudtuwup
Δεν πολυ καταλαβα αλλα το μονο που μπορω να πω ειναι οτι στο eclass του βασσαλου εχει διαφανιες με ολιγη odbc-jdbc επειδη κ εγω τωρα το ψαχνω με τις εργασιες κ ειναι μπαχαλο. Εχει κ σχετικα links.
Posted: Fri Apr 29, 2005 1:33 am
by semika
tsilochr wrote:Και στο .ΝΕΤ που υπάρχει αυτή η δυνατότητα, γίνεται με ένα έτοιμο dll που δίνει η MS.
Οχι βέβαια... Γίνεται κάνοντας imports ADOX
Γιατί ρε γμτ να μη γίνεται με java...
Posted: Fri Apr 29, 2005 2:31 pm
by tsilochr
semika wrote:tsilochr wrote:Και στο .ΝΕΤ που υπάρχει αυτή η δυνατότητα, γίνεται με ένα έτοιμο dll που δίνει η MS.
Οχι βέβαια... Γίνεται κάνοντας imports ADOX
Γιατί ρε γμτ να μη γίνεται με java...
Το ίδιο πράγμα λέμε. Το directive imports ADOX θα προσθέσει ένα dll στο project directory. Αυτό που ήθελα να πω είναι ότι δεν υπάρχει built-in τέτοια δυνατότηα στις γλώσσες της Ms και απλώς έχει δωθεί έτοιμη pre-compiled βιβλιοθήκη. Εν τέλει μάλλον δεν γίνεται δημιουργία αρχείων mdb με Java γιατί θα έπρεπε η Ms να δώσει στη Sun τη (κλειστή) δομή των αρχείων της Access ή να εκδώσει σχετική βιβλιοθήκη η Ms για Java. Και στις δυο περιπτώσεις υπάρχει σύγκρουση συμφερόντων.
Posted: Sun May 01, 2005 2:44 pm
by yioan
δεν ξέρω πως γίνεται αλλά είμαι σίγουρος ότι μπορείς να φτιάξεις και να διαγράψεις πίνακες σε ένα άρχειο .mdb της Microsoft Access. Επομένως δημιούργησε ένα αρχείο χωρίς πίνακες και κάνε το ότι θέλεις χρησιμοποιώντας κώδικα. Αν τώρα αυτό που θέλεις είναι να κατασκευάζεις αρχεία .mdb τότε δημιούργησε ένα .mdb χωρίς πίνακες στην Access, κράτησε το όπως είναι μαζί με τον κώδικα java και κάθε φορά που θέλεις να δημιουργείς ένα νέο mdb αντίγραφε αυτό.
Posted: Sun May 01, 2005 10:15 pm
by semika
Αυτό οκ... Το έχω ήδη κάνει!
Αλλά ήμουν περίεργη αν γίνεται να δημιουργώ εκ του μηδενός μια άδεια β.δ....
Posted: Sun May 08, 2005 7:31 am
by Skeftomilos
Ο παρακάτω κώδικας JScript κάνει αυτό που θέλεις. Σώσε το αρχείο με κατάληξη .js και τρέξε το με διπλό-κλικ ή Enter. Ελπίζω η μετατροπή σε Java να είναι εύκολη.
Code: Select all
// Δημιουργία βάσης "Test.mdb" και σύνδεση.
var cat = WScript.CreateObject("ADOX.Catalog")
cat.Create("Provider='Microsoft.Jet.OLEDB.4.0';Data Source='Test.mdb'")
// Δημιουργία πίνακα "Persons".
var com = WScript.CreateObject("ADODB.Command")
com.ActiveConnection = cat.ActiveConnection
com.CommandText = "CREATE TABLE Persons (Id IDENTITY PRIMARY KEY, UserName TEXT(50) NOT NULL, [Password] TEXT(50))"
com.CommandText.CommandType = 1 + 128 // adCmdText, adExecuteNoRecords
com.Execute()
// Καταχώρηση εγγραφής "Semika", "bmw1".
var com = WScript.CreateObject("ADODB.Command")
com.ActiveConnection = cat.ActiveConnection
com.CommandText = "INSERT INTO Persons (Username, [Password]) VALUES (?, ?)"
com.Parameters.Append(com.CreateParameter("Username", 8, 1, 50, "Semika")) //adBSTR, adParamInput
com.Parameters.Append(com.CreateParameter("Password", 8, 1, 50, "bmw1")) //adBSTR, adParamInput
com.CommandText.CommandType = 1 + 128 // adCmdText, adExecuteNoRecords
com.Execute()
// Αποσύνδεση.
cat.ActiveConnection.Close
WScript.Echo("Ok!")
Αν ενδιαφέρεται κανείς για συμπίεση και επιδιόρθωση μίας υπαρκτής βάσης:
Code: Select all
var jro = WScript.CreateObject("JRO.JetEngine")
var source = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='Test1.mdb'"
var target = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source='Test2.mdb'"
jro.CompactDatabase(source, target)
Caution: The Microsoft Jet OLE DB Provider and other related components were removed from MDAC 2.6. Microsoft has deprecated the Microsoft Jet Engine, and plans no new releases or service packs for this component. As a result, the Jet and Replication Objects (JRO) is being deprecated in this release and will not be available in any future MDAC releases.
Επιπλέον αν υπάρχει ενδιαφέρον για την ασφάλεια μίας βάσης Access, βρήκα ένα ενδιαφέρον άρθρο:
How to create a secure database for MS-Jet (Access 2000) from a program.
Posted: Sun May 08, 2005 10:13 am
by semika
Ευχαριστώ skeftomilos..
Θα το προσπαθήσω...
( semika - bmw: φαίνεται έχεις καταλάβει τις αδυναμίες μου

)