Hallo,
ich muss mehrere Datenbanken mit den gleichen Tabellen zusammenführen. Dazu hab ich mir ein kleines JAVA-Programm geschrieben. Erst importiere ich mit Access 2010 die eine Datenbank in die andere. Da die Tabellen die gleichen Tabellennamen haben, wird automatisch eine 1 hinter die Namen der eingefügten Tabellen geschrieben. Erst werden alle Tabellennamen ausgelesen, dann schaue ich, ob es den gleichen Namen nochmal mit einer 1 dahinter gibt. Wenn ja, wird der INSERT INTO Befehl ausgeführt und anschließend die Tabelle1 gelöscht. Ich bekomme jedoch immer eine Fehlermeldung. "General Error"!
Das Programm sieht so aus:
Ich bitte um Hilfe! Ich mach da schon seit drei Tagen rum und es klappt einfach nicht!! 🙁
ich muss mehrere Datenbanken mit den gleichen Tabellen zusammenführen. Dazu hab ich mir ein kleines JAVA-Programm geschrieben. Erst importiere ich mit Access 2010 die eine Datenbank in die andere. Da die Tabellen die gleichen Tabellennamen haben, wird automatisch eine 1 hinter die Namen der eingefügten Tabellen geschrieben. Erst werden alle Tabellennamen ausgelesen, dann schaue ich, ob es den gleichen Namen nochmal mit einer 1 dahinter gibt. Wenn ja, wird der INSERT INTO Befehl ausgeführt und anschließend die Tabelle1 gelöscht. Ich bekomme jedoch immer eine Fehlermeldung. "General Error"!
Das Programm sieht so aus:
Java:
import java.net.URL;
import java.sql.*;
import java.util.*;
import javax.swing.text.TabExpander;
class TEST
{
public static Connection connection;
public static void main (String args[])
{
try
{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connection = DriverManager.getConnection("jdbc:odbc:AccessDatenbank", "Name", "Passwort");
List<String> Tablenames = new ArrayList<String>();
DatabaseMetaData dbmd = connection.getMetaData();
String[] types = {"TABLE"};
ResultSet resultSet = dbmd.getTables(null, null, "%", types);
while (resultSet.next()) {
Tablenames.add(resultSet.getString(3));
//String tableCatalog = resultSet.getString(1);
// String tableSchema = resultSet.getString(2)
}
for (String item: Tablenames){
if (Tablenames.contains(item + "1")){
Statement statement = connection.createStatement();
String sql = "INSERT INTO " + item + " SELECT * FROM " + item + "1";
statement.executeUpdate(sql);
System.out.println(item);
String sql1 = "DROP TABLE " + item + "1";
statement.execute(sql1);
}
}
connection.close();
} catch(java.lang.ClassNotFoundException e)
{
System.out.println("JDBC-ODBC-Treiber nicht gefunden");
} catch(java.sql.SQLException e)
{
System.out.println("Fehler beim Abfragen der Datenbank");
}
}
}
Ich bitte um Hilfe! Ich mach da schon seit drei Tagen rum und es klappt einfach nicht!! 🙁