Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    267

    [JAVA]Errore connessione DBaccess

    Salve a tutti, sto utilizzando un programmino per il riempimento random di un db access... Questo programma allìapparenza abbastanza semplice legge da un file xml la struttura del DB e le varie opzioni di randomizzazione delle tuple per poi riempirlo.. ma quando lo lancio mi risulta in output questo errore:


    Qualcuno sa darmi una mano?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Prova a postare il codice che usi per la connessione al DB.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    267
    eccolo qui:

    codice:
    void initializeConnection(){
        try{
          Class.forName(driverSignature);
        }catch (ClassNotFoundException e){
          System.out.println("Error in loading driver: "+ e);
         }
        try{
          conn = DriverManager.getConnection(dataSourceSignature);
          conn.setAutoCommit(true);
        }catch (SQLException e){
          System.out.println("Error in loading data source: " + e);
         }
      }//initializeConnection
    
      void destroyConnection(){
        try{
          conn.close();
        }catch (SQLException e){
          System.out.println("Error in destroying connection: " + e);
         }
      }//destroyConnection
    I vari valori sono scritti nel xml relativo del quale ti posto l'intestazione...

    codice:
    <?xml version="1.0" encoding="UTF-8"?>
    
    <tuplegen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\tuplegen.xsd" DB_name="jdbc:odbc:fatture_db" driver_name="sun.jdbc.odbc.JdbcOdbcDriver">
    	<generate key_length="6" number_of_tuples="150">

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    267
    UP and HELP!

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Dal codice che hai postato non si capisce quale sia la stringa di connessione che viene effettivamente inviata al Driver.

    Il problema credo che riguardi il nome del driver che viene caricato.
    Tu effettui una connessione di tipo JDBC-ODBC Bridge. Questo presuppone che esista un'origine dati ODBC preconfigurata che punti al database che intendi usare.

    Controlla che effettivamente esista questa connessione ODBC (dall'errore che hai postato sembra che nemmeno gli venga passato il nome della connessione ODBC).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    267
    Scusa per l'imprecisione ma è che con i db in java non ho mai lavorato e il codice disto prog è abbastanza lungo..cercherò di spulciarlo meglio per postare in maniera più precisa... intanto cercherò di utilizzare il tuo suggerimento e ti dò una mezza risposta... se per sorgente ODBC intendi il file del DB vero e proprio... si esiste e dovrebbe esser posizionato nella corretta locazione nel file system.. forse sarà un problema di assegnazione..cmq per ora ti ringrazio e ti rimando a fra un pò!!

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    267
    Rispondo solo ora perchè in questi giorni ho un pòtralascaito il problema..cmq... ho controlllato e sembra che tutti i passaggi siano corretti.. cmq ho modificato un pò il prog cercando di far tutto in java... per il parser poi ci si pensa... così da esser sicuro degli assegnamenti.. e beh non credo che l'erroe dipenda da qui... perchè sostanzialmente il nome del DB viene passato come stringa nel main al costruttore:

    codice:
     try{
          dbGenerator =  new SchemaDrivenSyntheticRelationalDataGenerator("sun.jdbc.odbc.JdbcOdbcDriver",
                                                                          "Jdbc:Odbc:FATTUREDB.mdb",
                                                                          6, symbolArrayForKeyGeneration,
                                                                          5, 10000);
    Il nome del driver per DB access è giusto vero???

    Qu ti faccio vedere un pò il costruttore...

    codice:
    SchemaDrivenSyntheticRelationalDataGenerator(String driverSignature, String dataSourceSignature,
                                                   int keySymbolNumber,
                                                   char[] symbolArrayForKeyGeneration,
                                                   int masterTableNumber,
                                                   int tupleNumberForTable) throws Exception{
        this.driverSignature = driverSignature;
        this.dataSourceSignature = dataSourceSignature;
        this.keySymbolNumber = keySymbolNumber;
        this.symbolArrayForKeyGeneration = symbolArrayForKeyGeneration;
        this.masterTableNumber = masterTableNumber;
        this.tupleNumberForTable = tupleNumberForTable;
        int totalDistinctKeyNumber = (int)Math.pow(keySymbolNumber, symbolArrayForKeyGeneration.length);
        int distinctKeyNumberForTable = totalDistinctKeyNumber / masterTableNumber;
        if (tupleNumberForTable > distinctKeyNumberForTable){
          throw new Exception("Attention! The input parameters are inconsistent! It is not possible to generate " +
                             tupleNumberForTable + " distinct keys with length equal to " + keySymbolNumber +
                             " for " + masterTableNumber + " master tables by using " +
                             symbolArrayForKeyGeneration.length + " symbols!");
    
    //Il codice continua con assegnazioni non riguardanti la connessione al db..
    Per inizializzare la connessione richiamo da main il metodo che ti ho postato su....
    e poi lo utilizzo tramite degli statement scritti nei metodi dell'oggetto..



    codice:
     try{
          System.out.println("Populating table " + tableName.toUpperCase() + " starts...");
          stm = conn.createStatement();
          rst = stm.executeQuery("SELECT * FROM " + tableName);
          rstMetaData = rst.getMetaData();
          attributeNumber = rstMetaData.getColumnCount();
          while (tupleCounter < numberOfTuplesToBeGenerated){
            attributeCounter = 1;
            syntheticAttributeDataDefinitionIndexer = 0;
            while (attributeCounter <= keyNumber){
              attributeType = rstMetaData.getColumnType(attributeCounter);
              if (attributeType == Types.VARCHAR){
                if (executionCode == 0){
                  twoLevelClusterIndex = (Vector)twoLevelClusterIndexVector.get(attributeCounter - 1);
                  stringRandomKey = (String)((ClusterInfo)twoLevelClusterIndex.get(firstLevelClusterIndexIndexer)).obj1;
                  secondLevelClusterIndex = (Vector)((ClusterInfo)twoLevelClusterIndex.get(firstLevelClusterIndexIndexer)).obj2;
                  stringRandomKey = stringRandomKey +
                                    (String)((ClusterInfo)secondLevelClusterIndex.get(secondLevelClusterIndexIndexer)).obj1;
                  randomKeyCluster = (Vector)((ClusterInfo)secondLevelClusterIndex.get(secondLevelClusterIndexIndexer)).obj2;
                  sortedObjectArray = randomKeyCluster.toArray();
                  Arrays.sort(sortedObjectArray);
                  stringRandomKeyTmp = getStringRandomKey(keySymbolNumber - 2);
                  while (Arrays.binarySearch(sortedObjectArray, stringRandomKeyTmp) >= 0){
                    stringRandomKeyTmp = getStringRandomKey(keySymbolNumber - 2);
                    System.out.print(".");
                  }
    Spero che così sia più chiaro.. non riesco a capire da cose possa dipendere sto errore...

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    213
    x impostare l'odbc sotto windows,vai a pannello di controllo,poi strmenti di amministrazione, poi origine dati (ODBC), poi spunta dns sistema,dagli un nome a piacere e dagli il path dov'è il tuo database.questo l'avevi fatto??

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    267
    Originariamente inviato da tonz79
    x impostare l'odbc sotto windows,vai a pannello di controllo,poi strmenti di amministrazione, poi origine dati (ODBC), poi spunta dns sistema,dagli un nome a piacere e dagli il path dov'è il tuo database.questo l'avevi fatto??
    Provo subito....

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2003
    Messaggi
    267
    Provato a fare come dicevi... ma continua a dare lo stesso errore... correggimi se ho sbagliato qualcosa...sono andato qui dove vedi e ho aggiunto la voce fatture_db



    Configurandola come sta nel secondo screenshot... cioè dandogli un nome e associandogli il percorso del DB...



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 © 2025 vBulletin Solutions, Inc. All rights reserved.