ERLEDIGT
NEIN
NEIN
ANTWORTEN
18
18
ZUGRIFFE
931
931
EMPFEHLEN
-
27.07.10 11:20 #1
- Registriert seit
- Jul 2010
- Beiträge
- 27
Liebe Mitglieder!
Tut mir Leid, dass ich gleich wieder ein neues Thema öffne.
Obwohl ich schon viele Foren (inkl. diesem) nach dem Thema durchsucht und auch fündig wurde, helfen diese mir nichts.
Ich habe:
for(int i=0;i<listDate.size();i++)
{
long t = listDate.get(i).getTime(): //listDate ist eine ArrayList aus java.util.Date
erg.add(new java.sql.Date(t));
}
Exception:
Bei der Konvertierung eines char-Datentyps in einen datetime-Datentyp liegt der datetime-Wert außerhalb des gültigen Bereichs.Geändert von Champion1908 (27.07.10 um 11:26 Uhr)
Es ist nicht wichtig, besser zu sein als die Anderen.
Es ist wichtig, dass du besser bist als gestern.
-
27.07.10 11:29 #2
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hallo,
wann / wo wird die Exception geworfen? Poste mal bitte den Stacktrace (Exception.printStacktrace()) Dein Code-Ausschnitt sieht so weit richtig aus.
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
27.07.10 11:40 #3
- Registriert seit
- Jul 2010
- Beiträge
- 27
nicht in dieser methode, aber in der, wo ich ein insert statement habe:
ArrayList<java.sql.Date> time = getSQLDates(); //so heißt die obrige Methode
INSERT INTO t_email_monitoring....
...time.get(0) + "', " + "' " + time.get(1)
printStrack() wirft nichts besonderes aus. Sagt das selbe wie die getMessage()Geändert von Champion1908 (27.07.10 um 11:45 Uhr)
Es ist nicht wichtig, besser zu sein als die Anderen.
Es ist wichtig, dass du besser bist als gestern.
-
27.07.10 11:49 #4
- Registriert seit
- Jun 2007
- Ort
- Passau (Niederbayern)
- Beiträge
- 1.394
Hallo,
lass dir mal bitte die SQL-Anweisung auf der Konsole ausgeben, bevor du sie abschickst. Eventuell ist die toString()-Methode bei der java.sql.Date-Klasse nicht richtig / anders als erwartet überladen.
Gruß
BKÜber eine gute Bewertung freut sich jeder ;)
Bitte erledigte Threads als "Erledigt" markieren.
"Though a program be but three lines long, someday it will have to be maintained.''
-- Geoffrey James, "The Tao of Programming"
-
27.07.10 12:02 #5
- Registriert seit
- Jul 2010
- Beiträge
- 27
OK, er gibt folgendes zurück:
wenn ich die toString()-Methode aufrufe: 2010-07-26
wenn ich die getTime()-M. aufrufe: 1280171992000
kA: Fehlen da nicht die Stunden, Minuten usw.?
ps: Wie markiere ich ein Thread auf Erledigt?Es ist nicht wichtig, besser zu sein als die Anderen.
Es ist wichtig, dass du besser bist als gestern.
-
27.07.10 13:11 #6
- Registriert seit
- Jul 2010
- Beiträge
- 27
Vielleicht hilft der ganze code was
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
package connect; import java.sql.*; import java.util.ArrayList; import java.sql.Date; import javax.swing.JOptionPane; import java.util.*; import com.microsoft.sqlserver.jdbc.*; import com.microsoft.*; import com.microsoft.sqlserver.*; import microsoft.sql.*; /** * * @author Champion * @version 1.0 * @since 2010 * * This class reads the fields out of the Creater and turns them into a mySQL file */ public class ToSQL { public ArrayList<Object> list; public ArrayList<java.util.Date> listDate; /** * Creates a new ToSQL-Object and gets the given creater * @param creater */ public ToSQL(ArrayList<Object> list, ArrayList<java.util.Date> dates) { setList(list); setListDate(dates); } public ArrayList<Object> getList() { return list; } public ArrayList<java.sql.Date> getSQLDates() { ArrayList<java.sql.Date> erg = new ArrayList<java.sql.Date>(); java.sql.Date temp = null; for(int i=0;i<listDate.size();i++) { long t = listDate.get(i).getTime(); temp = new java.sql.Date(t); JOptionPane.showMessageDialog(null, "Temp: " + temp.toString() + "Time: " + temp.getTime()); erg.add(temp); } return erg; } public void setList(ArrayList<Object> list) { this.list = list; } public ArrayList<java.util.Date> getListDate() { return listDate; } public void setListDate(ArrayList<java.util.Date> listDate) { this.listDate = listDate; } public void create() { ArrayList<java.sql.Date> time = getSQLDates(); try { String url = "jdbc:sqlserver://dfs01;instanceName=data;databaseName=Monitoring";//"jdbc:sqlserver://dfvms01\\dataflow:1433" Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); Connection conn = DriverManager.getConnection(url, "ba", "klaaxx"); Statement s = conn.createStatement(); JOptionPane.showMessageDialog(null, conn.isValid(100)); s.executeUpdate("INSERT INTO t_email_monitoring (absender, kundenname, modul, datumsent, datumreceived, emailtext, success)" +//da liegt das Problem "VALUES " + "('" + list.get(6).toString() + "', '" + list.get(1) + "', '" + list.get(2) + "', '" + time.get(0) + "', '" + time.get(1) + "', '" + list.get(3) + "', '" + list.get(0) + "')"); conn.close(); } catch(SQLException sqle) { JOptionPane.showMessageDialog(null, "SQLException: " + sqle.getMessage()); sqle.printStackTrace(); } catch(ClassNotFoundException cnfe) { JOptionPane.showMessageDialog(null, "Class not found: " + cnfe.getMessage()); cnfe.printStackTrace(); } catch(Exception ex) { JOptionPane.showMessageDialog(null, "Exception: " + ex.getMessage()); ex.printStackTrace(); } } }Geändert von Champion1908 (27.07.10 um 13:34 Uhr)
Es ist nicht wichtig, besser zu sein als die Anderen.
Es ist wichtig, dass du besser bist als gestern.
-
27.07.10 16:34 #7
- Registriert seit
- Aug 2005
- Ort
- Karlsruhe (Baden-Württemberg)
- Beiträge
- 905
Aber dran denken, die Connection/statement/resultset usw. in einem finally Block zu schließen, d.h. die Ressourcen freizugeben.
Wäre super wenn ihr euren Code in dieser Form einfügt:
[java]System.out.println("Hello World");[/java]Code java:1
System.out.println("Hello World");
Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
Blog: http://javaeffective.wordpress.com/
-
27.07.10 17:18 #8
- Registriert seit
- Jul 2010
- Beiträge
- 27
Connection hab ich im try-block zugemacht, resultset brauch ich keines. Das statement muss man auch schließen?
Schau ich gleich in der API.
Trotzdem weiterhin, wie wandelt man java.util.Datum in java.sql.Datum um?
Danke auf jeden Fall schon für die bisherigen Antworten!Es ist nicht wichtig, besser zu sein als die Anderen.
Es ist wichtig, dass du besser bist als gestern.
-
27.07.10 17:34 #9
- Registriert seit
- Jul 2010
- Beiträge
- 27
Tatsächlich, statement.close();
Danke für den Hinweis!Es ist nicht wichtig, besser zu sein als die Anderen.
Es ist wichtig, dass du besser bist als gestern.
-
27.07.10 17:46 #10
- Registriert seit
- Apr 2009
- Ort
- Düsseldorf (NRW)
- Beiträge
- 508
-
siehe in der API den Konstruktor
Grüße
Erik
Hm man sollte mal die Seite aktualisieren bevor man antwortet
Geändert von Erik (27.07.10 um 18:04 Uhr)
-
27.07.10 19:09 #12
- Registriert seit
- Jul 2010
- Beiträge
- 27
Hallo!
Das ist ja das Problem:
long t = listDate.get(i).getTime(): //listDate ist eine ArrayList aus java.util.Date
erg.add(new java.sql.Date(t));
eigentlich genau das selbe, aber ich bekomm ja immer die Exception:
Bei der Konvertierung eines char-Datentyps in einen datetime-Datentyp liegt der datetime-Wert außerhalb des gültigen Bereichs.Es ist nicht wichtig, besser zu sein als die Anderen.
Es ist wichtig, dass du besser bist als gestern.
-
27.07.10 21:44 #13
- Registriert seit
- Aug 2005
- Ort
- Karlsruhe (Baden-Württemberg)
- Beiträge
- 905
Die Fehlermeldung kommt ja vom SQL-Treiber? Sonst wäre sie kaum eingedeutscht

Ich hab mal google befragt....
Da war das Problem, dass ein deutschsprachiger (Microsoft)SQL-Server auf einem Englischen Windows läuft.
Und dadurch ein anderes Datumsformat erwartet wird vom SQL-Server.
Ein Stacktrace wäre natürlich schöner gewesen (package-Namen oder so hätteste ja zensieren könnenKurzes Datumsformat:
Hier: TT.MM.JJJJ
Langes Datumsformat:
TTTT, T. MMMM JJJJ
)
Geändert von Anime-Otaku (28.07.10 um 08:27 Uhr)
Wäre super wenn ihr euren Code in dieser Form einfügt:
[java]System.out.println("Hello World");[/java]Code java:1
System.out.println("Hello World");
Für erledigte Threads dürft ihr den "erledigt"-Button anklicken!
Über Dank freut sich jeder, der euch geholfen hat - ein Klick auf "Danke" kostet ja nicht mal was
Blog: http://javaeffective.wordpress.com/
-
28.07.10 07:59 #14
- Registriert seit
- Jul 2010
- Beiträge
- 27
Das ist einmal ein guter Hinweis!
Danke!Es ist nicht wichtig, besser zu sein als die Anderen.
Es ist wichtig, dass du besser bist als gestern.
-
28.07.10 09:03 #15
- Registriert seit
- Jul 2010
- Beiträge
- 27
Das java.util.Date gibt mir aber folgendes Format zurück:
Tue Jul 27 05:26:24 CEST 2010
Kann mir jemand sagen, woher dieses "Tuesday"Es ist nicht wichtig, besser zu sein als die Anderen.
Es ist wichtig, dass du besser bist als gestern.
Ähnliche Themen
-
Datum umwandeln
Von PHPProgi im Forum Relationale DatenbanksystemeAntworten: 6Letzter Beitrag: 05.05.10, 16:17 -
Datum umwandeln
Von NepHthYS23 im Forum JavaAntworten: 4Letzter Beitrag: 21.03.07, 12:46 -
Time in Datum um wandeln | datum in alter umwandeln!! --> ich blick das nicht!
Von alive im Forum PHPAntworten: 13Letzter Beitrag: 26.03.05, 13:33 -
Datum umwandeln
Von Oskar_Stark im Forum PHPAntworten: 3Letzter Beitrag: 28.06.04, 16:12 -
Datum umwandeln?
Von Frag0r im Forum PHPAntworten: 9Letzter Beitrag: 17.11.01, 13:22





Zitieren


Login





