0

Ms AccessDB を derby に変換 (または変換しようとしています) しています。

Access から特定の varchar / text / memo フィールドからデータを抽出すると、それらはアポストロフィ、数学記号 (パーセント、未満など)、および可能な外国文字で埋められます

これらを保持する必要があり、「エスケープシーケンス」を使用してデータベースに確実に格納できるようにテストします。

ただし、今のところ、これらのフィールドで失敗せずにデータを DB に取得することはできません。SQL が失敗すると、SQL 文字列を出力し、それを切り取り、ij に貼り付けます。次に、最初のレコードだけを変更します。いつもこれらの文字に悩まされます。

「二重引用符」で囲んで文字列を変更しようとしましたが、別のエラーが発生するだけです(常に二重引用符の最初の出現である「行1列x」に「enounderd ""」があることを示しています)。

文字列の動作を変更するためのダービーの設定はまだ見つかりません。ありますか?

また、SQLステートメントをpreparedStatementに設定しようとしましたが、{call PreparedStatement}を再度使用しましたが、これも失敗しました。{escape "escape char} を通常のステートメントで使用することはできません。derby は間違った構文を言っているだけだからです。

奇妙なキャラクターを含むユーザー コンテンツを derby のフィールドに入れるには、どうすればよいでしょうか? フィールドを CLOB または varchar / long Varchar 以外のものに変更する必要がありますか? 問題の原因は間違った文字セット (UTF-8 ではなく iso など) を使用したことですか?

以下は、ダービーに送信したときに失敗する SQL 挿入のサンプルです (私の Java 'プログラム' 経由)。

S1.SORTIEDESSAI (OBS, DATEDUSORTIE, CONTREINDIC, FIN, PDEVU, REFUS, INVDECISN, ADMIN, MOTIF_DE_LA_SORTIE, NOMVALIDEE, DATEVALIDEE) 値 ('"0001/0001"' , '2007-07-15' , false , true , '"null"' , '"null"' , '"null"' , '"null"' , '"2.FIN DE L'ESSAI"' , '"DR SIMON"' , '2011-04-19' )

注: 実際に上記を見て、列名の順序が正しくないことに気付きましたか? 昨日は大丈夫だったのに、なぜ変わったのかわからない?Access が resultSetMetaData からランダムな順序で列名を返すことと関係がありますが、これは驚くべきことです。

今のところ、この問題を整理している間、それ以上の回答は保留することをお勧めします。問題は解決しました。この動作について別の質問を設定する必要がありますか... メインスレッドに戻る...

SQL ステートメントでわかるように、varchar フィールドを二重引用符で囲みました。これは常に失敗します (ij を直接介しても)。助けて助けて…

4

1 に答える 1

0

あなたの質問が何であるかはよくわかりませんが、一般に、次の形式の PreparedStatement を使用してこれらの文字を入力できます: INSERT INTO テーブル名 (列名) 値 (?)、次に PreparedStatement.setString() メソッドを使用して指定しますその列の文字データ。

于 2012-08-23T04:22:19.973 に答える