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