Visualizzazione dei risultati da 1 a 10 su 10
  1. #1

    [DB] - Firebird embedded: Come creare nuovo db mediante connector java

    Salve il problema è il seguente: ho scaricato firebird embedded (chi non sa cos'è non mi può aiutare quindi non sto a spiegarlo) e mi servirebbe per usarlo in concomitanza con il connector java per firebird.In altre parole il mio obiettivo e quello di avere un'applicazione java che distribuita insieme alla dll (fembedded) del dbms, al jar del connector ed alla dll del connector, sia in grado di lavorare con database ed sql in maniera autosufficiente (senza dover installare nessun server dbms nella macchina dell'utilizzatore) cosa estremamente utile se la gestione mediante db dei dati deve essere trasparente all'utente finale,il quale deve potersi assumere un perfetto ignorante di programmazione ed amministrazione/configurazione di dbms .

    Ora,innanzitutto con la versione embedded di firebird non ho trovato accluso alcun db di prova (di cui si parla nella documentazione) e quindi me lo sono dovuto creare usando un tool scaricato dalla rete.Procuratomi un db di prova dopo varie prove sono riuscito ad effeettuare degli inserimenti e delle query su tale db da codice java e usando il connector. Non sono riuscito però a fare una cosa fondamentale:creare un db da codice java. Questo perchè il connector per relizzare la connessione a firebird embedded richiede il path completo di un db GIA' ESISTENTE, cioè il percorso di un file .fdb!!! Questo da un'idea dell'url che ho usato:

    codice:
    String databaseURL = "jdbc:firebirdsql:embedded:path_completo_del_file/prova.fdb";
    Devo dedurre che non c'è verso di creare un db da java? Io spero di aver letto male e che qualcuno mi sappia indicare un modo per connettermi semplicemente al dbms (alla dll fembedded nel mio caso) e poi gestire i database con la comune sintassi sql "create database...", "drop database.."" ....
    In realtà un problema analogo l'ho avuto anche con postgres, senza il nome del db a cui connettersi non riesco a connettermi al dbms, mentre con mysql si riesce tranquillamente!

    Grazie a chiunque mi vorrà aiutare.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,769

    Re: [DB] - Firebird embedded: Come creare nuovo db mediante connector java

    Originariamente inviato da unomichisiada
    Ora,innanzitutto con la versione embedded di firebird non ho trovato accluso alcun db di prova (di cui si parla nella documentazione) e quindi me lo sono dovuto creare usando un tool scaricato dalla rete.
    Il database di esempio si trova nella distribuzione del SuperServer, mentre l'edizione Embedded include poco più che la libreria DLL del server "embedded", appunto, più alcuni file di supporto facoltativi.

    Il mio suggerimento è quello di installare nella macchina di sviluppo la versione SuperServer per poter lavorare sui database attraverso il classico "client" con il servizio del server in funzione, delegando l'uso del server "embedded" solo in fase di deploy dell'applicazione, cioè quando l'applicazione viene distribuita ai clienti assieme al database già pronto.

    Originariamente inviato da unomichisiada
    Non sono riuscito però a fare una cosa fondamentale:creare un db da codice java. Questo perchè il connector per relizzare la connessione a firebird embedded richiede il path completo di un db GIA' ESISTENTE, cioè il percorso di un file .fdb!!! [...]
    Devo dedurre che non c'è verso di creare un db da java? Io spero di aver letto male e che qualcuno mi sappia indicare un modo per connettermi semplicemente al dbms (alla dll fembedded nel mio caso) e poi gestire i database con la comune sintassi sql "create database...", "drop database..""
    Purtroppo, non ho una conoscenza sufficientemente ampia del funzionamento dei Connector JAVA, quindi non posso dirti se esistono classi in grado di eseguire quanto richiedi.

    So comunque che la DLL del server "embedded" consente di effettuare questa operazione, poichè è possibile sfruttarla attraverso il provider dati ADO.NET; la possibilità di utilizzarla con il Connector JAVA dipende dalle caratteristiche di quest'ultimo. Hai verificato se il Connector possiede documentazione allegata con informazioni al riguardo?

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  3. #3

    Re: Re: [DB] - Firebird embedded: Come creare nuovo db mediante connector java

    Originariamente inviato da alka
    Il mio suggerimento è quello di installare nella macchina di sviluppo la versione SuperServer per poter lavorare sui database attraverso il classico "client" con il servizio del server in funzione, delegando l'uso del server "embedded" solo in fase di deploy dell'applicazione, cioè quando l'applicazione viene distribuita ai clienti assieme al database già pronto.
    Naturalmente!Quello che mi interessa però è proprio risolvere il problema della fase di deploy, cioè avere un'applicazione completamente standalone come spiegato prima.

    Purtroppo, non ho una conoscenza sufficientemente ampia del funzionamento dei Connector JAVA, quindi non posso dirti se esistono classi in grado di eseguire quanto richiedi.

    So comunque che la DLL del server "embedded" consente di effettuare questa operazione, poichè è possibile sfruttarla attraverso il provider dati ADO.NET; la possibilità di utilizzarla con il Connector JAVA dipende dalle caratteristiche di quest'ultimo. Hai verificato se il Connector possiede documentazione allegata con informazioni al riguardo?

    Ciao!
    Allora ti ringrazio ed attendo risposte di persone con maggiore conoscenza dei connectors.La doc del connector e di fireembedded non contiene nulla a riguardo.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,769
    Originariamente inviato da unomichisiada
    Naturalmente!Quello che mi interessa però è proprio risolvere il problema della fase di deploy, cioè avere un'applicazione completamente standalone come spiegato prima.
    Ma l'applicazione "stand alone" deve anche essere in grado di creare un database autonomamente?
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  5. #5
    Originariamente inviato da alka
    Ma l'applicazione "stand alone" deve anche essere in grado di creare un database autonomamente?
    Esatto!Uno o più..comunque forse ho trovato, ora verifico e se è così posto la soluzione in modo che sia utile ai posteri.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  6. #6
    Allora dopo varie peripezie sono giunto alla soluzione del mio problema e la espongo qui di seguito.Riassumendo in breve la situazione è quella in cui si vuole ottenere un'applicazione java che sia completamente standalone e sia in grado di lavorare con la versione embedded di firebird non solo connettendosi a database già esistenti ma anche creandone di nuovi (o eventualmente cancellandone ma questa è un'altra storia).La connessione a database esistenti è semplice ed avviene come di consueto:basta istanziare il driver "org.firebirdsql.jdbc.FBDriver" e specificare come parametro di connessione al metodo getConnection della classe DriverManager la stringa
    codice:
    "jdbc:firebirdsql:embedded:"jdbc:firebirdsql:embedded:dbPath/DBFileName ?userID=myUserID&password=myPassword"
    in cui ovviamente userID e password devono essere gli stessi con cui è stato creato il database in questione.Per chi non ha capito un accidenti di quanto sopra consiglio la pillola di LeleFT su questo forum che è ottima per fare i primi passi.
    Il problema più grosso si pone quando non si ha già a disposizione un file di database e si ha quindi la necessità di crearne uno su cui poi lavorare.La soluzione di tale problema sta nell'usare la classe org.firebirdsql.management.FBManager contenuta nel jar di jaybird (il connector java per firebird). Questa classe contiene tutti i metodi necessari alla manipolazione di database,per riuscire ad usarla con firebird embedded però è necessario istanziarla passando al costruttore la seguente espressione GDSType.getType("EMBEDDED"), in caso contrario la classe tenta di connettersi al localhost e fallisce nella creazioen del database.Quest'ultimo accorgimento costituisce l'essenza della soluzione e devo dire che non è stato facile arrivarci,non essendoci nulla in proposito neanche sulle faq.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,769
    Originariamente inviato da unomichisiada
    Allora dopo varie peripezie sono giunto alla soluzione del mio problema e la espongo qui di seguito.
    Ottimo lavoro!
    Credo che si potrà tenere in considerazione, nel futuro più prossimo, questa discussione come "pillola" di sicuro interesse da mettere in evidenza nell'apposito thread di rilievo.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Homepage | Blog | Delphi Podcast | Altri link...

  8. #8
    Originariamente inviato da alka
    Ottimo lavoro!
    Credo che si potrà tenere in considerazione, nel futuro più prossimo, questa discussione come "pillola" di sicuro interesse da mettere in evidenza nell'apposito thread di rilievo.

    Ciao!
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  9. #9
    ho un presentimento sulla stringa:
    codice:
    "jdbc:firebirdsql:embedded:"jdbc:firebirdsql:embedded:dbPath/DBFileName ?userID=myUserID&password=myPassword"
    forse la prima parte era ripetuta?
    codice:
    "jdbc:firebirdsql:embedded:dbPath/DBFileName ?userID=myUserID&password=myPassword"
    www.matteosteri.it

  10. #10
    Originariamente inviato da tommisceddu
    ho un presentimento sulla stringa:
    codice:
    "jdbc:firebirdsql:embedded:"jdbc:firebirdsql:embedded:dbPath/DBFileName ?userID=myUserID&password=myPassword"
    forse la prima parte era ripetuta?
    codice:
    "jdbc:firebirdsql:embedded:dbPath/DBFileName ?userID=myUserID&password=myPassword"
    Si si è un refuso di copia è incolla!
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.