tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
18
ZUGRIFFE
931
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Champion1908 Champion1908 ist offline Mitglied Bronze
    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.

  2. #2
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    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"

  3. #3
    Champion1908 Champion1908 ist offline Mitglied Bronze
    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.

  4. #4
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    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"

  5. #5
    Champion1908 Champion1908 ist offline Mitglied Bronze
    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.

  6. #6
    Champion1908 Champion1908 ist offline Mitglied Bronze
    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.

  7. #7
    Anime-Otaku Anime-Otaku ist offline Mitglied Brillant
    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:
    Code java:
    1
    
    System.out.println("Hello World");
    [java]System.out.println("Hello World");[/java]
    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/

  8. #8
    Champion1908 Champion1908 ist offline Mitglied Bronze
    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.

  9. #9
    Champion1908 Champion1908 ist offline Mitglied Bronze
    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.

  10. #10
    Tim Bureck Tim Bureck ist offline Mitglied Platin
    Registriert seit
    Apr 2009
    Ort
    Düsseldorf (NRW)
    Beiträge
    508
    Zitat Zitat von Champion1908 Beitrag anzeigen
    Trotzdem weiterhin, wie wandelt man java.util.Datum in java.sql.Datum um?
    Meines Erachtens sollte

    Code java:
    1
    2
    
    java.util.Date date = new java.util.Date();
    java.sql.Date sqlDate = new java.sql.Date(date.getTime());

    wunderbar funktionieren.
     

  11. #11
    Erik Erik ist offline Mitglied Gold
    Registriert seit
    Jul 2008
    Beiträge
    171
    Zitat Zitat von Champion1908 Beitrag anzeigen
    Trotzdem weiterhin, wie wandelt man java.util.Datum in java.sql.Datum um?
    Code java:
    1
    
    java.sql.Date date = new java.sql.Date(java_util_datum.getTime());
    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)
     

  12. #12
    Champion1908 Champion1908 ist offline Mitglied Bronze
    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.

  13. #13
    Anime-Otaku Anime-Otaku ist offline Mitglied Brillant
    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.

    Kurzes Datumsformat:
    Hier: TT.MM.JJJJ

    Langes Datumsformat:
    TTTT, T. MMMM JJJJ
    Ein Stacktrace wäre natürlich schöner gewesen (package-Namen oder so hätteste ja zensieren können)
    Geändert von Anime-Otaku (28.07.10 um 08:27 Uhr)
     
    Wäre super wenn ihr euren Code in dieser Form einfügt:
    Code java:
    1
    
    System.out.println("Hello World");
    [java]System.out.println("Hello World");[/java]
    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/

  14. #14
    Champion1908 Champion1908 ist offline Mitglied Bronze
    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.

  15. #15
    Champion1908 Champion1908 ist offline Mitglied Bronze
    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

  1. Datum umwandeln
    Von PHPProgi im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 05.05.10, 16:17
  2. Datum umwandeln
    Von NepHthYS23 im Forum Java
    Antworten: 4
    Letzter Beitrag: 21.03.07, 12:46
  3. Antworten: 13
    Letzter Beitrag: 26.03.05, 13:33
  4. Datum umwandeln
    Von Oskar_Stark im Forum PHP
    Antworten: 3
    Letzter Beitrag: 28.06.04, 16:12
  5. Datum umwandeln?
    Von Frag0r im Forum PHP
    Antworten: 9
    Letzter Beitrag: 17.11.01, 13:22