JAVA - Δημιουργία βάσης δεδομένων ACCESS

Συζητήσεις για γλώσσες προγραμματισμού και θέματα σχετικά με προγραμματισμό.
Post Reply
User avatar
semika
Mbyte level
Mbyte level
Posts: 998
Joined: Sat May 01, 2004 2:21 pm
Location: Αθήνα - Β.Π.

JAVA - Δημιουργία βάσης δεδομένων ACCESS

Post by semika » Thu Apr 28, 2005 7:53 pm

Υπάρχει κάποιος κώδικας για να δημιουργήσω από την αρχή μία βάση δεδομένων ACCESS με Java?
Πρέπει να τη δηλώσω και στο odbc για να κάνω μετά connection? Υπάρχει τρόπος να τη δημιουργώ και να συνδέομαι χωρίς να τη έχω δηλώσει??


Ευχαριστώ πολύ :smile: :smile:
User avatar
Einherjar
Venus Project Founder
Venus Project Founder
Posts: 3751
Joined: Tue Jan 27, 2004 4:42 pm
Academic status: Alumnus/a
Gender:
Location: Washington DC, USA
Contact:

Post by Einherjar » Thu Apr 28, 2005 8:31 pm

νομίζω ότι δε μπορείς να φτιάξεις εκ του μηδενός μια βάση από το πρόγραμμά σου όχι μόνο με Java αλλά γενικότερα.
[Better to understand a little than to misunderstand a lot]
User avatar
AmmarkoV
Wow! Terabyte level
Wow! Terabyte level
Posts: 2838
Joined: Thu Nov 04, 2004 2:55 pm
Gender:
Location: Reloaded @ Santa Friday
Contact:

Post by AmmarkoV » Thu Apr 28, 2005 9:20 pm

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

BTW τι εννοείς να την δηλώσεις στο odbc? και τι connection?
Spoiler: εμφάνιση/απόκρυψη
I would love to change the world, but they won't give me the source code. Οι καθηγητές πληρώνονται από το δημόσιο αρα από όλους τους Έλληνες για να κάνουν τα μαθήματα. Όλοι οι Έλληνες θα έπρεπε να μπορούν να δουν τα μαθήματα τα οποία πληρώνουν! Tο πνευματικό έργο που επιτελείται με τα χρήματα του δημοσίου ΔΕΝ είναι μόνο δικό σας Όποιος δεν δίνει πανελλήνιες έχει δικαίωμα στην γνώση που πληρώνει [url=http://ammar.gr/gddg]gddg blog[/url]
Image
User avatar
semika
Mbyte level
Mbyte level
Posts: 998
Joined: Sat May 01, 2004 2:21 pm
Location: Αθήνα - Β.Π.

Post by semika » Thu Apr 28, 2005 9:37 pm

Ευχαριστώ και τους 2 σας...

Και εγώ απόσο έψαξα νομίζω οτι δε γίνεται η δημιουρία από το μηδέν (στη Java γιατί στη .NET το έχω κάνει).
Μάλλον πρέπει να υπάρχει κάπου μια άδεια βδ και να τη γεμίζεις εσύ...
Αλλά το μελετάω ακόμη... Αν έχει άλλος καμία ιδέα ας ποστάρει.

Εννοώ να τη δηλώσω στο odbc για να μπορώ να τη προσπελάσω.. Δηλ να της δώσω DSΝ.
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

Post by tsilochr » Thu Apr 28, 2005 11:39 pm

Νομίζω ότι δεν θα μπορέσεις να φτιάξεις νέα βάση δεδομένων μέσα από Java. Κάπου μπλέκει το θέμα με τα copyrights. Και στο .ΝΕΤ που υπάρχει αυτή η δυνατότητα, γίνεται με ένα έτοιμο dll που δίνει η MS.
User avatar
sudtuwup
Mbyte level
Mbyte level
Posts: 707
Joined: Fri May 14, 2004 6:46 pm
Academic status: MSc
Gender:
Location: Xavier Institute for Higher Learning

Post by sudtuwup » Fri Apr 29, 2005 12:00 am

Δεν πολυ καταλαβα αλλα το μονο που μπορω να πω ειναι οτι στο eclass του βασσαλου εχει διαφανιες με ολιγη odbc-jdbc επειδη κ εγω τωρα το ψαχνω με τις εργασιες κ ειναι μπαχαλο. Εχει κ σχετικα links.
Image
User avatar
semika
Mbyte level
Mbyte level
Posts: 998
Joined: Sat May 01, 2004 2:21 pm
Location: Αθήνα - Β.Π.

Post by semika » Fri Apr 29, 2005 1:33 am

tsilochr wrote:Και στο .ΝΕΤ που υπάρχει αυτή η δυνατότητα, γίνεται με ένα έτοιμο dll που δίνει η MS.
Οχι βέβαια... Γίνεται κάνοντας imports ADOX

Γιατί ρε γμτ να μη γίνεται με java...
User avatar
tsilochr
Wow! Terabyte level
Wow! Terabyte level
Posts: 3246
Joined: Tue Mar 16, 2004 2:47 pm
Academic status: PhD
Gender:
Location: mm.aueb.gr
Contact:

Post by tsilochr » Fri Apr 29, 2005 2:31 pm

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. Και στις δυο περιπτώσεις υπάρχει σύγκρουση συμφερόντων.
yioan
byte level
byte level
Posts: 126
Joined: Wed Mar 24, 2004 11:09 pm

Post by yioan » Sun May 01, 2005 2:44 pm

δεν ξέρω πως γίνεται αλλά είμαι σίγουρος ότι μπορείς να φτιάξεις και να διαγράψεις πίνακες σε ένα άρχειο .mdb της Microsoft Access. Επομένως δημιούργησε ένα αρχείο χωρίς πίνακες και κάνε το ότι θέλεις χρησιμοποιώντας κώδικα. Αν τώρα αυτό που θέλεις είναι να κατασκευάζεις αρχεία .mdb τότε δημιούργησε ένα .mdb χωρίς πίνακες στην Access, κράτησε το όπως είναι μαζί με τον κώδικα java και κάθε φορά που θέλεις να δημιουργείς ένα νέο mdb αντίγραφε αυτό.
User avatar
semika
Mbyte level
Mbyte level
Posts: 998
Joined: Sat May 01, 2004 2:21 pm
Location: Αθήνα - Β.Π.

Post by semika » Sun May 01, 2005 10:15 pm

Αυτό οκ... Το έχω ήδη κάνει!
Αλλά ήμουν περίεργη αν γίνεται να δημιουργώ εκ του μηδενός μια άδεια β.δ....
User avatar
Skeftomilos
bit level
bit level
Posts: 43
Joined: Fri Mar 04, 2005 8:08 am
Location: Ν.Κόσμος

Post by Skeftomilos » Sun May 08, 2005 7:31 am

Ο παρακάτω κώδικας 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.
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.
User avatar
semika
Mbyte level
Mbyte level
Posts: 998
Joined: Sat May 01, 2004 2:21 pm
Location: Αθήνα - Β.Π.

Post by semika » Sun May 08, 2005 10:13 am

Ευχαριστώ skeftomilos..
Θα το προσπαθήσω...

( semika - bmw: φαίνεται έχεις καταλάβει τις αδυναμίες μου ;) ;) )
Post Reply

Return to “Προγραμματισμός”