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...