Avatar billede marvinq Nybegynder
12. januar 2006 - 11:38 Der er 21 kommentarer og
1 løsning

Miljøvariabler til SQLDatabase

Hej folkens.

Jeg er ved at lave et java-program, som skal bruge en lokal SQL database, og er blevet anbefalet at benytte Borland Interbase, men jeg kan ikke finde ud af hvordan jeg opsætter en ODBC forbindelse til databasen uden at selve Borland Interbase programmet er installeret, og det er jo ikke meningen at det skal være hos modtageren. Er der nogen der kan give en forklaring på hvordan det gøres - evt. via miljøvariabler!??

Tænkte på om det ikke lige så godt kunne have været en MSAccess database - det giver vel det samme?? - er det nødvendigt at have access installeret da??

Håber I forstår spørgsmålene.


På forhånd tak.
Avatar billede arne_v Ekspert
12. januar 2006 - 11:49 #1
Undgå JDBC-ODBC - det virker aldrig optimalt.

Enten skal du bruger Interbase og Borlands JDBC drivere.

Eller du skal opdatere til Firebird med nyeste JDBC driver til denne.

Access er ikke noget godt valg da der ikke er en JDBC driver til den, men
hvis du er tiltrukket af at der ikke skal installeres end database
server på systemet, så prøv og kig på HSQLDB !
Avatar billede mwl Nybegynder
12. januar 2006 - 12:15 #2
Jeg har selv forsøgt mig med db4o (http://www.db4o.com/), den kræver heller ingen installation og er lige til at gå til.
Avatar billede marvinq Nybegynder
12. januar 2006 - 12:35 #3
Nu har jeg ikke prøvet med HSQLDB endnu - serveren er lige nede for vedligeholdelse...

Angående den anden mulighed - prob. er at jeg står med en SQL database med data i nu, som skal flyttes over i den nye database... - er det muligt med den omtalte db4o ?? - eller kan det blive et problem?
Avatar billede arne_v Ekspert
12. januar 2006 - 12:49 #4
db4o er så vidt jeg ved objektorienteret, så måske er det nemmere
at konvertere til en anden relationel database
Avatar billede arne_v Ekspert
12. januar 2006 - 12:50 #5
Avatar billede arne_v Ekspert
12. marts 2006 - 05:40 #6
Kommet videre ?
Avatar billede marvinq Nybegynder
26. maj 2006 - 12:20 #7
Hej Arne... jeg har fået det hele til at virke mht. det HSQLDB - fik endelig tid til det... Men nu står jeg så med et problem angående den .script fil som ligger med min database.. - den vil jeg gerne have skjult for brugeren, eller krypteret på en eller andet måde, så brugeren ihvertfald ikke kan tilgå og læse den.. kan det lade sig gøre ??
Avatar billede arne_v Ekspert
28. maj 2006 - 04:56 #8
Hvad for en script fil ? Har du ikke bare bruge almindelig JDBC inde fra Java ?
Avatar billede marvinq Nybegynder
29. maj 2006 - 11:12 #9
Jeg har brugt det HSQLDB som du henviste til - det fungerer også ganske fint, men det virker kun hvis jeg ligger '.script' filen med i mappen. Den fil hvor alle mine SQL koder står skrevet - og dem er jeg ked af at give videre.

Jeg har måske gjort det forkert så ??
Avatar billede simonvalter Praktikant
29. maj 2006 - 12:26 #10
En lokal database vil brugeren altid kunne få adgang til på en eller anden måde, du kan sikkert gøre det mere besværligt men er det det værd? Hvis du ikke stoler på brugeren så skulle du måske overveje noget andet. hsqldb kan bruges clint-server. http://www.hsqldb.org/doc/guide/ch01.html#N1013D
Avatar billede arne_v Ekspert
29. maj 2006 - 15:14 #11
default kører HSQLDB i en mode hvor den ikke gemmer en rigtig database men et script
med alle de SQL sætninger som er nødvendige for at recreate databasen

er det det script som du snakker om ?

det kan du ændre ved at rette

hsqldb.default_table_type=memory

til

hsqldb.default_table_type=cached

i din properties file
Avatar billede arne_v Ekspert
29. maj 2006 - 16:03 #12
det er meget svært at beskytte password og SQL sætninger effektivt når
bruger har adgang til applikationen
Avatar billede marvinq Nybegynder
02. juni 2006 - 18:57 #13
Ååååh... det er så guld det der !! Det var netop det jeg mente. Ved godt det er svært at skjule selve indholdet og mine SQL-filer. Det er absolut heller ikke "proffessionelle aftagere", som skal benytte det her program, men ville da være ked af at have alle SQL sætninger til at ligge så man frit kunne kopiere dem direkte over. - og det ser lidt bedre ud på den her "cached" måde.
Avatar billede arne_v Ekspert
03. juni 2006 - 01:22 #14
så vil jeg ligge et svar
Avatar billede marvinq Nybegynder
31. juli 2006 - 17:20 #15
Hej Arne...

Nu er jeg kommet fra ferie og har hørt at det sql-system jeg lavede med det HSQLDB har en lille mangel.

Har opdaget, at databasen kun gemmer data når man kalder "Shutdown" på databasen, men jeg vil gerne at den gemmer alle data også selvom den ikke lukkes korrekt. Eksempelvis hvis computeren går ned, så vil jeg gerne, at man kan åbne programmet igen og "gendanne" de data som blev indtastet inden systemet gik ned. Kan det lade sig gøre på nogen måde?? - og hvordan ?? Håber du kan hjælpe.

På forhånd tak.
Avatar billede arne_v Ekspert
31. juli 2006 - 17:39 #16
saa skal du nok have en transaktions log

jeg vil lige proeve at studere HSQLDB docs omkring det

(jeg antager at du allerede bruger catch til at faa lukket paent ned hvis
applikationen crasher, saaledes at det kun er system crash vi skal haandtere)
Avatar billede marvinq Nybegynder
31. juli 2006 - 17:45 #17
Ja, præcis... jeg har catch på det hele, så der bliver lukket pænt hvis nu der er en run-time error, det er netop kun hvis systemet crasher..!

Håber du kan finde noget spændende - for er sq gået lidt i stå må jeg nok indrømme. Kan ikke lige gennemskue den.

MHQ.
Avatar billede arne_v Ekspert
01. august 2006 - 04:02 #18
Closing the Database

All databases running in different modes can be closed with the SHUTDOWN command, issued as an SQL query. From version 1.7.2, in-process databases are no longer closed when the last connection to the database is explicitly closed via JDBC, a SHUTDOWN is required. In 1.8.0, a connection property, shutdown=true, can be specified on the first connection to the database (the connection that opens the database) to force a shutdown when the last connection closes.
Avatar billede arne_v Ekspert
01. august 2006 - 04:04 #19
Appendix C. Hsqldb Database Files and Recovery

...

Aborted Database state

    *

      The test.properties still containes 'modified=yes'.
    *

      The test.script contains a snapshot of the database at the last checkpoint and is OK.
    *

      The test.data file may be corrupt because the cache in memory was not written out completely.
    *

      The test.backup file contains a snapshot of test.data that corresponds to test.script.
    *

      The test.log file contain all information to re-do all changes since the snanapshot. As a result of abnormal termination, this file may be partially corrupt.

...

Repair

The current test.data file is corrupt, but with the old test.data (from the test.backup file and test.script) and the current test.log, the database is made up-to-date. The database engine takes these steps:

Procedure C.3. Database Repair

  1.

      Restore the old test.data file from the backup (uncompress the test.backup and overwrite test.data).
  2.

      Execute all commands in the test.script file.
  3.

      Execute all commands in the test.log file. If due to corruption, an exception is thrown, the rest of the lines of command in the test.log file are ignored.
  4.

      Close the database correctly (including a backup).
Avatar billede arne_v Ekspert
01. august 2006 - 04:04 #20
det sidste er nok mest relevant

den burde faktisk recover selv
Avatar billede marvinq Nybegynder
02. august 2006 - 21:34 #21
Jeg er ikke helt sikker på jeg forstår hvori backup'en ligger. Jeg har prøvet at kigge på det, men det lader ikke helt til at det virker alligevel. Eller det virker cirka hver 10. gang, men det er ikke helt til at gennemskue hvad der er galt.

Jeg har ikke nogen .data fil... - skal den bruges ?? Og hvor stammer den fra? Kan ikke gennemskue om man eventuelt kan ændre noget i properties filen... - synes det virker fornuftigt i dokumentationen, men det virker ikke helt i praksis.!

Mvh. MHQ.
Avatar billede marvinq Nybegynder
02. august 2006 - 22:00 #22
jeg har en .data fil - min fejl!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester