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:
Il nome del driver per DB access è giusto vero???codice:try{ dbGenerator = new SchemaDrivenSyntheticRelationalDataGenerator("sun.jdbc.odbc.JdbcOdbcDriver", "Jdbc:Odbc:FATTUREDB.mdb", 6, symbolArrayForKeyGeneration, 5, 10000);
Qu ti faccio vedere un pò il costruttore...
Per inizializzare la connessione richiamo da main il metodo che ti ho postato su....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..
e poi lo utilizzo tramite degli statement scritti nei metodi dell'oggetto..
Spero che così sia più chiaro.. non riesco a capire da cose possa dipendere sto errore...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("."); }![]()

Rispondi quotando