Hi,
falls es einen Thin JDBC Client für MS SQL Server 2000 gibt,
würde ich diesen der JDBC-ODBC Bridge vorziehen.
Dann kannst Du zeitgleich jeweils eine Verbindung zu beiden
DB´s aufbauen (hier die Oracle Variante):
Als Membervariable der Klasse definieren:
Connection conn1,conn2;
Statement stmt;
ResultSet res;
Die Connect Methode:
private void ConnectToDB() throws SQLException
{
conn=DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.1.99:1521:db1",
"username","userpassword");
stmt=conn.createStatement();
conn1=DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.1.100:1521:db2",
"username2","userpassword2");
}
Das Select aus der Quelle:
private void executeQuery() throws SQLException
{
res=stmt.executeQuery(" SELECT "+
"Feld1,"+
"Feld2,"+
"Feld3 "+
"FROM Tabellenname "+
"WHERE Feld1 = 1 ) "+
"ORDER BY Feld2");
}
Die Daten ins Ziel eintragen:
private void doCopy() throws SQLException
{
String sFeld1,sFeld2,sFeld3,sInsert;
PreparedStatement pstmt;
int rc;
while(res.next())
{
sFeld1=new String(res.getString(1);
sFeld2=new String(res.getString(2);
sFeld3=new String(res.getString(3);
sInsert=new String("insert into Tabelle (Feld1,Feld2,Feld3) values ( ? , ? , ?)");
pstmt=conn1.prepareStatement(sInsert);
pstmt.setString(1,sFeld1);
pstmt.setString(2,sFeld2);
pstmt.setString(3,sFeld3);
rc=pstmt.executeUpdate();
}
}
Und das Disconnect von den DB´s nicht vergessen:
private void DisConnectFromDB() throws SQLException
{
conn.close();
conn1.close();
}
Ich habe das Ganze natürlich nicht getestet, Fehler sind
also gut Möglich, Verbesserungen bestimmt auch ;-)
Gruss, vergisses