[DAONET-73] InterBaseとBDPの組み合わせで、カラム名にFROMが含まれるとレコードの取得に失敗する Created: 2007-12-26 Updated: 2008-02-04 Resolved: 2008-02-04 |
|
| Status: | Closed |
| Project: | S2Dao.NET |
| Component/s: | S2Dao.NET |
| Affects Version/s: | 1.3.5 |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major |
| Reporter: | Mitsuhiro Koba | Assignee: | rmiyax |
| Resolution: | Won't Fix | Votes: | 0 |
| Labels: | None | ||
| Environment: |
InterBase 2007 |
||
| Attachments: |
|
| Description |
|
InterBaseとBDPの組み合わせで、カラム名に"FROM"が含まれると、エンティティの全メンバが型に応じて 以下の組み合わせだと問題はありません ODBCを使用することで問題の回避はできるのですが、原因がわかれば幸いに思います。 |
| Comments |
| Comment by rmiyax [ 2008-02-04 ] |
|
クローズということで了解しました。 また、何かありましたらご連絡ください。 |
| Comment by Mitsuhiro Koba [ 2008-02-04 ] |
|
ありがとうございます。 元々のバグに関しては、BDP2.5.0.1が.Net2.0に未対応ということで、ODBCで 新しいバージョンに関しては、公開されたタイミングで試してみます。 |
| Comment by rmiyax [ 2008-02-01 ] |
|
最新版のBDPではなく 私の環境のBDP2.5.0.1で実行すると、 |
| Comment by Anonymous [ 2008-01-21 ] |
|
ご返信ありがとうございます。 該当するカラムのDBParameterクラスのDbType、ParameterName、Valueプロパティの値は DbTypeが何故かStringではなくObjectになっていました。 デバッガでおいかけたところ以下でdbTypeにはString(System.Data.DbType.String) >BDPでは、パラメータ名の指定に"?"を使えるか確認してもらえませんか。 以上宜しくお願いいたします。 |
| Comment by rmiyax [ 2008-01-19 ] |
|
Insert SQL文とDBパラメータの指定で問題が発生しているかもしれません。 S2Dao.NETでは、SQL文を実行する場合に、 上記のメソッドにブレークポイントを設定して おそらくParameterName プロパティのパラメータ名は、"?"になっていると思います。 |
| Comment by Mitsuhiro Koba [ 2008-01-18 ] |
|
本件ですが、使用していたBDPが.Netの2.0に対応していないことが原因であったようです。 ここに書くべきではないのかもしれませんが、最新版で、Insert時にカラムが文字列型 [ESSR0071]SQLで例外が発生しました。理由はBorland.Data.TAdoDbxException: internal error またS2Dao.Netを介さない場合には問題なくInsert出来ることから、本件のGetSchemaTable |
| Comment by Mitsuhiro Koba [ 2007-12-28 ] |
|
添付されたProgram.vbで再現することを確認いたしました。 S2Dao.Netの問題ではないようですね。 >S2Dao.NET経由で"SELECT"のSQL文を発行した場合、 上記のような仕組みになっているのですね。 ありがとうございました。 |
| Comment by rmiyax [ 2007-12-28 ] |
|
"TESTFROM"(TESTとFROMの間にスペースがない)の場合にこちらの環境でも再現しました。 原因は、Borland.Data.Provider.BdpDataReaderクラスのGetSchemaTableメソッドが S2Dao.NET経由で"SELECT"のSQL文を発行した場合、 検証ソースファイルを添付しましたので、 |
| Comment by Mitsuhiro Koba [ 2007-12-28 ] |
|
rmiyaさんに頂いたDBファイルでは正常に取得できました。 前回のコメントですが、TestとFROMの間にスペースが入っておりました。 TestとFromの間にスペースがない場合にはどうなりますでしょうか。 現象が発生するDBファイルを添付いたします。 宜しくお願いいたします。 |
| Comment by rmiyax [ 2007-12-28 ] |
|
サンプルソースの確認結果です。 >InterBaseとBDPの組み合わせで、カラム名に"FROM"が含まれると、エンティティの全メンバが型に応じて エンティティの全プロパティが正しい値を取得できない現象は発生しません。 "FROM"を含むカラム名に対応したエンティティのプロパティに値がセットされない現象は発生しました。 ただ、ODBC経由だと正しい値が取得できる理由が不明です。 |
| Comment by Mitsuhiro Koba [ 2007-12-27 ] |
|
ありがとうございます。 ■スキーマ ■データ ■動作環境の補足 以上宜しくお願いいたします。 |
| Comment by rmiyax [ 2007-12-27 ] |
|
InterBase 2007 + BDP2.5.0.1 + C# の環境で確認しましたが再現しませんでした。 再現可能なソースファイルおよびデータファイルがあれば |