# java.sql.SQLException: Unable to open file



## MarcoJava (6. Okt 2007)

ich habe ein für mich nicht lösbares prob immer noch bzw wieder einmal und zwar wie folgt:

wenn ich diese sql anweisung in einer methode für java benutze klappt alles:


```
String updateString = "LOAD DATA LOCAL INFILE 'test.txt' INTO TABLE tab02 FIELDS TERMINATED BY ';' ENCLOSED BY '\"'  ESCAPED BY '\\\\' LINES TERMINATED BY '\\r\\n' IGNORE 1 LINES; ";
```

klappt alles wunderbar er nimmt den inhalt und kopiert ihn in die DB.


wenn ich aber die .txt-Datei über eine getFileDialog()-Methode öffne klappt das nicht.

hier mein Quellcode:


```
private String getFileDialog()
      {
          FileDialog fd = new FileDialog (new Frame(), "Datei oeffnen");
          fd.setFile("*.txt");
          fd.setVisible(true);
          fd.addWindowFocusListener(windowClosing());
          dir = fd.getDirectory()+fd.getFile();
          System.out.println(dir); 
          return dir;   
      }
```


damit wähle ich die datei aus, die ich für folgende Methode benutzen möchte:


```
private void openDatasetSet () 
    {
          getFileDialog();

      {
        try
        {
             System.out.println("===>   INIT Statement"); 
             Statement statement = conn.createStatement();   
            
             System.out.println("===>   Finished Statement");             
             String updateString = "LOAD DATA LOCAL INFILE "+dir+" INTO TABLE tab02 FIELDS TERMINATED BY ';' ENCLOSED BY '\"'  ESCAPED BY '\\\\' LINES TERMINATED BY '\\r\\n' IGNORE 1 LINES; ";
             statement.executeUpdate (updateString);
             System.out.println("===>   Finished Statement NACH DER SQL ANWEISUNG");
             System.out.println(updateString);   
             
        } 
        catch (SQLException e)
        {
            System.out.println(e);
        }
      }
        
    }
```


er kann die datei einfach nicht finden bzw öffnen.


Ich erhalte folgende fehlermeldung:



```
init:
deps-jar:
compile-single:
run-single:
* Treiber laden
* Treiber laden
* Verbindung aufbauen
* Verbindung wurde aufgebaut
===>   INIT Statement openfileButton Verbindung geoeffnet
C:\Dokumente und Einstellungen\PC\Desktop\TableSwitch\TableSwitch\test.TXT
===>   INIT Statement
===>   Finished Statement
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'C:\Dokumente und Einstellungen\PC\Desktop\TableSwitch\TableSwitch\test.TXT INTO ' at line 1
===>   INIT Statement iAnzeigen Methode openfile gestartet
```


----------



## MarcoJava (6. Okt 2007)

ach und wenn ich in dem SQL-Befehl

```
'"+dir+"'
```
schreibe anstatt

```
"+dir+"
```

erhalte ich folgende fehlermeldung:


```
init:
deps-jar:
compile-single:
run-single:
* Treiber laden
* Treiber laden
* Verbindung aufbauen
* Verbindung wurde aufgebaut
===>   INIT Statement openfileButton Verbindung geoeffnet
C:\Dokumente und Einstellungen\PC\Desktop\TableSwitch\TableSwitch\test.TXT
===>   INIT Statement
===>   Finished Statement
java.sql.SQLException: Unable to open file 'C:Dokumente und EinstellungenPCDesktopTableSwitchTableSwitch	est.TXT'for 'LOAD DATA LOCAL INFILE' command.Due to underlying IOException: 

** BEGIN NESTED EXCEPTION ** 

java.io.FileNotFoundException
MESSAGE: C:Dokumente und EinstellungenPCDesktopTableSwitchTableSwitch	est.TXT (Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch)

STACKTRACE:

java.io.FileNotFoundException: C:Dokumente und EinstellungenPCDesktopTableSwitchTableSwitch	est.TXT (Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch)
        at java.io.FileInputStream.open(Native Method)
        at java.io.FileInputStream.<init>(FileInputStream.java:106)
        at java.io.FileInputStream.<init>(FileInputStream.java:66)
        at com.mysql.jdbc.MysqlIO.sendFileToServer(MysqlIO.java:2820)
        at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2074)
        at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1451)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1787)
        at com.mysql.jdbc.Connection.execSQL(Connection.java:3250)
        at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1355)
        at com.mysql.jdbc.Statement.executeUpdate(Statement.java:1270)
        at ShowDB.openDatasetSet(ShowDB.java:312)
        at ShowDB.actionPerformed(ShowDB.java:372)
        at java.awt.Button.processActionEvent(Button.java:392)
        at java.awt.Button.processEvent(Button.java:360)
        at java.awt.Component.dispatchEventImpl(Component.java:4410)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)


** END NESTED EXCEPTION **


===>   INIT Statement iAnzeigen Methode openfile gestartet
```


ich versteh es einfach nicht.

Ich hoffe es kann mir hier einer helfen sitze schon seit ca. 7std an diesem Prob  .


----------



## MarcoJava (7. Okt 2007)

****CLOSED****


weil ich einen neuen aufmache weil ich vorran gekommen bin.


----------

