KM
17-10-05, 10:44
Hallo,
mein Problem betrifft zwar nicht die iSeries direkt, aber vielleicht wäre trotzdem jemand so nett und könnte meine Frage beantworten.
Ich greife per JDBC (Microsoft JDBC Treiber) auf einen MS SQL-Server zu, um aus einem Datenbank-Feld (Typ varchar) den Wert in ein String-Feld zu übertragen. Diesen String schreibe ich dann in eine Textdatei ins IFS. Dabei werden manche Zeichen (z.B. die "Gänsefüßchen") in Fragezeichen (Hexa 3F) konvertiert. Kann mir jemand sagen woran das liegen könnte ? Muß ich bei der JDBC-Verbindung irgendwas besonderes einstellen ? Oder liegt es an dem String-Feld ? Was mache ich falsch ? Anbei noch ein bisschen Code:
public static String Beschreibung(String artnr, String sprache) {
// Variablen definieren
String beschreibung = "";
try {
// Verbindung zur SQL-Datenbank aufbauen
String sql_driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String sql_url = "jdbc:microsoft:sqlserver://nestor:1433;databaseName=katalog";
String sql_user = "test";
String sql_password = "test";
Class.forName(sql_driver);
Connection sql_conn = DriverManager.getConnection(sql_url, sql_user, sql_password);
// SQL-String erstellen
String sql_qry = "SELECT at_text from tblArtikeltexte WHERE at_artnr = ? AND at_sprache = ?";
// Statement-Objekt erzeugen
PreparedStatement sql_pstmt = sql_conn.prepareStatement(sql_qry);
sql_pstmt.setString(1, artnr);
sql_pstmt.setString(2, sprache);
// SQL-Abfrage ausführen
ResultSet sql_rs = sql_pstmt.executeQuery();
// Resultset verarbeiten
while(sql_rs.next()) {
beschreibung = sql_rs.getString(1).trim();
System.out.println(beschreibung);
}
// Verbindung schließen
sql_conn.close();
}
catch(SQLException ex) {
System.err.println("SQLException: " + ex.getMessage()) ;
}
catch(Exception e) {
System.err.println("Fehler: "+e.getMessage());
}
return beschreibung;
}
Vielen Dank,
KM
mein Problem betrifft zwar nicht die iSeries direkt, aber vielleicht wäre trotzdem jemand so nett und könnte meine Frage beantworten.
Ich greife per JDBC (Microsoft JDBC Treiber) auf einen MS SQL-Server zu, um aus einem Datenbank-Feld (Typ varchar) den Wert in ein String-Feld zu übertragen. Diesen String schreibe ich dann in eine Textdatei ins IFS. Dabei werden manche Zeichen (z.B. die "Gänsefüßchen") in Fragezeichen (Hexa 3F) konvertiert. Kann mir jemand sagen woran das liegen könnte ? Muß ich bei der JDBC-Verbindung irgendwas besonderes einstellen ? Oder liegt es an dem String-Feld ? Was mache ich falsch ? Anbei noch ein bisschen Code:
public static String Beschreibung(String artnr, String sprache) {
// Variablen definieren
String beschreibung = "";
try {
// Verbindung zur SQL-Datenbank aufbauen
String sql_driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String sql_url = "jdbc:microsoft:sqlserver://nestor:1433;databaseName=katalog";
String sql_user = "test";
String sql_password = "test";
Class.forName(sql_driver);
Connection sql_conn = DriverManager.getConnection(sql_url, sql_user, sql_password);
// SQL-String erstellen
String sql_qry = "SELECT at_text from tblArtikeltexte WHERE at_artnr = ? AND at_sprache = ?";
// Statement-Objekt erzeugen
PreparedStatement sql_pstmt = sql_conn.prepareStatement(sql_qry);
sql_pstmt.setString(1, artnr);
sql_pstmt.setString(2, sprache);
// SQL-Abfrage ausführen
ResultSet sql_rs = sql_pstmt.executeQuery();
// Resultset verarbeiten
while(sql_rs.next()) {
beschreibung = sql_rs.getString(1).trim();
System.out.println(beschreibung);
}
// Verbindung schließen
sql_conn.close();
}
catch(SQLException ex) {
System.err.println("SQLException: " + ex.getMessage()) ;
}
catch(Exception e) {
System.err.println("Fehler: "+e.getMessage());
}
return beschreibung;
}
Vielen Dank,
KM