[seasar-dotnet:283] [S2Unit]ExcelデータのWriteDb順がシート定義順でない。

kubo jazzflute @ mbn.nifty.com
2006年 7月 5日 (水) 17:16:51 JST


久保です。


S2Unitを利用しているのですが、
ExcelデータのWriteDb順がシート定義順でないという現象が発生しております。

ex) 
  エクセルのシートにテーブル名を
      BBB, DDD, AAA, CCC
  という順序で定義した場合、

  期待するINSERT順序は、(Java版を基準にしてしまっていますが...)
      BBB, DDD, AAA, CCC
  ですが、
      AAA, BBB, CCC, DDD
  という順序で登録されてしまいます(アルファベット順!?)。
  よって、FK制約の関連で正常に登録ができないです。


XlsReader.CreateDataSet()
  DataTable tableList = con.GetOleDbSchemaTable(...)

の時点で、tableList.Rows内のテーブルの順番が上記の
現象になっています。


OleDbConnection.GetOleDbSchemaTable()に詳しくないので、
パッとどうすれば直るのか想像が付かない状態なのですが、
エクセルのシート定義順でWriteDbされるように修正できませんでしょうか?


※回避策として、「Excelのファイル自体を分割してWriteDb」が
  ありますので現状そのようにやるつもりですが、
  「できればそうしたくない」、というところです。



-- 
kubo <jazzflute @ mbn.nifty.com>




seasar-dotnet メーリングリストの案内