java.sql.SQLException: Unable to open file

JavaMensch

Grünschnabel
Hallo,

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

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

Code:

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:

Code:

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:

Code:

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


Ich hoffe das ihr mir helfen könnt. Ich bin schon am verzweifeln.


ich bedanke mich schon im vorraus für jeden vorschlag.
 
ach und wenn ich in dem SQL-Befehl
Code:


'"+dir+"'

schreibe anstatt

Code:

"+dir+"



erhalte ich folgende fehlermeldung:

Code:

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 .
 
Zurück