Hallo zusammen
Ich bin mit meinem Latein wirklich am Ende und brauch hier mal Unterstützung!
Worum gehts:
Ich versuch durch Java mit SQL-Preparestatement in eine Access (2003) Tabelle zu schreiben. Die Acces Tabelle wiederum ist mit einem MS Sharepoint (2003) verlinkt.
Hier das Preparestatement:
Die Parameter für den ersten Datensatz werden wie folgt gesetzt:
erhalte ich folgende Exception:
Ich habe schon beinahe jegliche Kombination und Möglichkeit probiert. Bei den Begrenzern mit ' oder ` oder " ist immer dasselbe oder der Treiber reklamiret wegen Syntaxe oder too few Paramter oder so. Auch den Tabellennamen mit " zu begrenzen hat nichts gebracht.
Bei den Dates für Anfangs- und Endzeit habe ich zunächst versucht mit Timestamp zu arbeiten aber Access (oder wahrscheinlich eher der Sharepoint) hat ein Prob mit den Millisekunden. Daher übergebe ich das Datum nun als String (bei INSERT hat das so funktioniert).
Bei Dr. Google liest mann dazu öfters was von Apostrophs oder anderen Sonderzeichen in Pfaden. Ich verwende aber keine Pfade oder ist der Pfad im ODBC zur DB gemeint oder allenfalls der Link der DB zum Sharepoint? Ich blick nicht mehr durch! ???:L
Aus dem ODBC-trace bin ich auch nicht schlau geworden. Jrgend wo steht dann:
oder etwas weiter:
Als Anhang noch der ODBC-Trace. Die Stellen wo es interessant zu werden scheint findet man am bestem mit suchen nach
Hoffe wirklich sehr, dass mir hier jemand helfen kann.
Herzlichen Dank schon mal im Voraus.
Grüsse
Nahum77
Ich bin mit meinem Latein wirklich am Ende und brauch hier mal Unterstützung!
Worum gehts:
Ich versuch durch Java mit SQL-Preparestatement in eine Access (2003) Tabelle zu schreiben. Die Acces Tabelle wiederum ist mit einem MS Sharepoint (2003) verlinkt.
Hier das Preparestatement:
SQL:
UPDATE [ChangeCalendar: v_stefan] SET `Change ID` = ?,`Departement` = ?,`Anfangszeit` = ?,`Endzeit` = ? WHERE `Change ID` = ? AND Departement = ?
Die Parameter für den ersten Datensatz werden wie folgt gesetzt:
Wenn ich das Statement ausführe (Connection steht und preparestatement wurde gesetzt)Change ID: CRQ000000040605
Departement: I
Anfangszeit: 2025-05-31 00:00:00
Endzeit: 2025-07-24 00:00:00
Change ID: CRQ000000040605
Departement: I
Java:
int updateCount = mPSU.executeUpdate();
Java:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] '' is not a valid name. Make sure that it does not include invalid characters or pun
ctuation and that it is not too long.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.executeUpdate(Unknown Source)
at synchronizer2.Sync.clearSPFlag(Sync.java:507)
at synchronizer2.Sync.update(Sync.java:642)
at synchronizer2.Sync.sync_change(Sync.java:209)
at synchronizer2.Sync.<init>(Sync.java:130)
at synchronizer2.MyTimer.work(MyTimer.java:114)
at synchronizer2.MyTimer.access$000(MyTimer.java:24)
at synchronizer2.MyTimer$1.run(MyTimer.java:65)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Ich habe schon beinahe jegliche Kombination und Möglichkeit probiert. Bei den Begrenzern mit ' oder ` oder " ist immer dasselbe oder der Treiber reklamiret wegen Syntaxe oder too few Paramter oder so. Auch den Tabellennamen mit " zu begrenzen hat nichts gebracht.
Bei den Dates für Anfangs- und Endzeit habe ich zunächst versucht mit Timestamp zu arbeiten aber Access (oder wahrscheinlich eher der Sharepoint) hat ein Prob mit den Millisekunden. Daher übergebe ich das Datum nun als String (bei INSERT hat das so funktioniert).
Bei Dr. Google liest mann dazu öfters was von Apostrophs oder anderen Sonderzeichen in Pfaden. Ich verwende aber keine Pfade oder ist der Pfad im ODBC zur DB gemeint oder allenfalls der Link der DB zum Sharepoint? Ich blick nicht mehr durch! ???:L
Aus dem ODBC-trace bin ich auch nicht schlau geworden. Jrgend wo steht dann:
Synchronizer2 142c-15b8 EXIT SQLExecute with return code -1 (SQL_ERROR)
HSTMT 031F3AA8
oder etwas weiter:
In der Tablle ist der Datensatz vorhanden und die Parameter stimmen auch überein.Synchronizer2 142c-15b8 EXIT SQLErrorW with return code 100 (SQL_NO_DATA_FOUND)
HENV 00000000
HDBC 00000000
HSTMT 031F3AA8
WCHAR * 0x031BF584 (NYI)
SDWORD * 0x031BF5CC
WCHAR * 0x031BF184
SWORD 300
SWORD * 0x031BF5C8
Als Anhang noch der ODBC-Trace. Die Stellen wo es interessant zu werden scheint findet man am bestem mit suchen nach
SQL_ERROR
Hoffe wirklich sehr, dass mir hier jemand helfen kann.
Herzlichen Dank schon mal im Voraus.
Grüsse
Nahum77