1

Java 1.8 からの JDBC ブリッジの廃止 (私たちはまだ嘆き悲しんでいます) と UcanAccess への移行以来、私は SQL コードをデバッグしてきましたが、過去には何の問題もありませんでした。

DELETE TreatmentRecords.DateGiven, TreatmentRecords.TimeGiven, SInformation.Surname, SInformation.FirstNames, TreatmentRecords.Diagnosis, TreatmentRecords.*
FROM SInformation INNER JOIN TreatmentRecords ON SInformation.SID = TreatmentRecords.SID
WHERE (((TreatmentRecords.DateGiven)=#2015-03-07#) AND ((TreatmentRecords.TimeGiven)='17;16') AND ((SInformation.Surname)='Doe') AND ((SInformation.FirstNames)='John') AND ((TreatmentRecords.Diagnosis)='Headache'));

Access 自体で実行すると、エラーや問題はまったく発生しません。ただし、Ucancess は次の例外をスローします。

net.ucanaccess.jdbc.UcanaccessSQLException: unexpected token: TREATMENTRECORDS required: FROM

理由についてのアイデアは大歓迎です!

4

1 に答える 1

1

これは非標準の SQL 削除ステートメントであり、Jet エンジンではサポートされていても、ucanaccess ではサポートされていません。それについて奇妙なことは何もありません。したがって、これには標準 SQL を使用する必要があります。

たとえば、次のようなものを編集します(すべての条件を追加していません):

   DELETE FROM TreatmentRecords tr WHERE 
    tr.DateGiven=#2015-03-07# AND EXISTS 
(SELECT * FROM SInformation s WHERE s.SID=tr.SID AND  s.Surname='Doe')
于 2015-03-10T14:59:45.273 に答える