[seasar-dotnet:1909] Re: 自動発行SQLのテーブル名にクォート

kubo [E-MAIL ADDRESS DELETED]
2011年 1月 14日 (金) 21:02:03 JST


久保です。

ご確認ありがとうございます。

> ただその後、selectで下記エラーとなります。
> S2Dao側RowCreatorImpl.CreateColumnMetaData()内のFindColumnName()にてカラ
> ム名が取得できないところが起因となっているようです。

ということですんなり動かなかったというところですね。

それでは一旦ここで状況をまとめておきます。
一応これが現状でのDBFlute.NETの仕様ということになります。
Java版との機能差の一つでもあり、正式な対応は現状のJava版を
移植した後の DBFlute.NET-0.9.x にて(かもしれない)というところです。

で、ここからはできればちょっとの修正や拡張で動くようにできれば
いいなというところで、トライアンドエラーで探っていくことになります。
動くようにできたとしても、DBFlute.NETとして消極的サポートという
扱いであり、また、アプリ側でも拡張が必要かもしれませんので、
井上さんも S2Dao.NET のソースをある程度追いかけられるような
環境にしておいた方が良いかと思います。
(S2Dao.NETのソースはSVNからチェックアウトできます)

例外の内容を分析してみると、
RowCreatorImpl.CreateColumnMetaData()で呼び出している
FindColumnName(columnNames, pt.ColumnName) の
"string.Compare(realColumnName, columnName, true) == 0"
で、恐らく一致していないのでしょうね。
それぞれの値がどうなっていて、なぜ一致しないのか、を
確認してみて下さい。
(columnNames と pt.ColumnName のクォート状況など)
それにより、何をどう直せばさらに先に進めるのか考察できるかと。
また、ここのポイントを直せば動くのかどうかの確認のため、
試しに一致するように書き換えてもう一度実行してみて下さい。
このクラスは、自動生成される AllCommon 配下のクラス、
InternalRowCreator にて拡張されているので、オーバーライドする
だけで簡単に試せます。
(InternalRowCreator は S2DaoMetaDataFactoryImpl.cs にあります)

という感じで、何回かトライアンドエラーして完全に動くように
するために直すべきポイントを洗い出してみて下さい。
(ソースを分析する上で難しい点があればフォローしますので)
現実的な修正(量や内容)であれば DBFlute.NET に反映します。
そうでない場合、アプリ側で S2Dao.NET の拡張修正が必要に
なる可能性もあります。

早速フォローですが、RowCreator は基点テーブルの一つのレコードを
一つのEntity にマッピングするクラスです。(Row は一行分の Entity のこと)
DBFlute.NET では、S2Dao.NET の RowCreatorImpl を拡張して、
DBFluteの DBMeta を使ったマッピングを実現しています。
それが S2DaoMetaDataFactoryImpl.cs の InternalRowCreator です。
DBFluteがリフレクションを使わずにEntityにデータをマッピング
しているというのは、まさにここで実現されています。
http://dbflute.sandbox.seasar.org/ja/introduction/performance.html#noreflection

また、RowCreatorImpl.CreateColumnMetaData() の "IList columnNames" は、
出所は (AllCommon) InternalAbstractBeanMetaDataResultSetHandler の
CreateColumnNames() ですね。ADO.NETのインターフェースから、
SQL の select 句に定義されたカラム名を取得しています。

2011/1/14 井上忠彦 <[E-MAIL ADDRESS DELETED]>:
> 久保様
>
>> 古いバージョンのログのような気がしますね。
> 失礼いたしました。私のログ保管間違いかもしれません。
>
>> 反映しました。SNAPSHOTが上書きされています。
> ありがとうございます。
>
> テーブル名・カラム名ともに、$$ALL$$指定にて確認させていただきました。
> 以下、日本語・アルファベットともに違いはありません。
>
> TableSqlName,getTableSqlName(),EntityのTable属性すべてクォートされています。
>
> ただその後、selectで下記エラーとなります。
> S2Dao側RowCreatorImpl.CreateColumnMetaData()内のFindColumnName()にてカラ
> ム名が取得できないところが起因となっているようです。
>
> たびたび申し訳ございませんが、ご確認をお願いできますでしょうか?
>
> --- ここから
> The SQL failed to execute!
> [Advice]
> Please confirm the Exception message.
> [Exception]
> Core.DBFlute.AllCommon.JavaLike.IllegalStateException
> The propertyCache should not be empty: bean=Tblcontrol
> [Behavior]
> TblcontrolBhv.SelectEntity()
> [ConditionBean]
> Core.DBFlute.CBean.TblcontrolCB
> [Statement]
> Oracle.DataAccess.Client.OracleCommand
> [Display SQL]
> select  dfloc."COLKEY" as c0, dfloc."COLNAME" as c1
>  from "TBLCONTROL" dfloc
>  where dfloc.COLKEY = 5
>
>  Core.DBFlute.AllCommon.JavaLike.IllegalStateException: The
> propertyCache should not be empty: bean=Tblcontrol
>   場所
> Core.DBFlute.AllCommon.S2Dao.InternalRowCreator.CreateRow(IDataReader
> reader, IColumnMetaData[] columns, Type beanType)
>   場所
> Core.DBFlute.AllCommon.S2Dao.Internal.RsHandler.InternalAbstractBeanMetaDataResultSetHandler.CreateRow(IDataReader
> reader, IColumnMetaData[] columns)
>   場所
> Core.DBFlute.AllCommon.S2Dao.Internal.RsHandler.InternalBeanListMetaDataResultSetHandler.Handle(IDataReader
> dataReader, IList list)
>   場所
> Core.DBFlute.AllCommon.S2Dao.Internal.RsHandler.InternalBeanGenericListMetaDataResultSetHandler.Handle(IDataReader
> dataReader)
>   場所
> Core.DBFlute.AllCommon.S2Dao.Internal.SqlHandler.InternalBasicSelectHandler.Execute(IDbCommand
> cmd, Object[] args)
> --- ここまで
>
>
> 以上、よろしくお願いいたします。
>
> (11/01/13 (木) 23:48), kubo wrote:
>> 久保です。
>>
>>> 以下のとおりです。
>>>
>>> --- 8.9.23-SNAPSHOT ここから
>>> 2011-01-12 22:40:15,235 [main] INFO
>>> (TorqueJDBCTransformTask#generateXML():267) - $ MY.TBLCONTROL(TABLE)
>>> 2011-01-12 22:40:15,391 [main] INFO
>>> (TorqueJDBCTransformTask#generateXML():267) - $ MY.コントロール(TABLE)
>>> 2011-01-12 22:40:15,437 [main] WARN
>>> (TorqueJDBCTransformTask#generateXML():365) - Failed to get unique
>>> column information! But continue...
>>> java.sql.SQLException: コールに無効な引数があります。
>>> --- 8.9.23-SNAPSHOT ここまで
>>
>> 古いバージョンのログのような気がしますね。
>> generateXML():365 では、そのようなログは出してないし、
>> 「Failed to get unique column information! But continue...」
>> という文言自体、最新のソースではもうどこにもありません。
>>
>>>> $$ALL$$ って指定すると「全てのテーブルに付与する」って
>>>> いう機能をこれから実装しようかなと思ってました。
>>>
>>> ありがとうございます。非常に助かります。
>>> 期待して待たせていただきます。
>>
>> 反映しました。SNAPSHOTが上書きされています。
>> dfpropのドキュメントも更新しています。
>>
>>
>> #
>> # JDBCドライバで、DatabaseMetaData.needsQuote(name)
>> # みたいなメソッドがあったらいいのにって思いますよね...
>> # (そしたら、必要な名前にだけ自動でクォートってなことが)
>> #
>>
>> 2011/1/13 井上忠彦<[E-MAIL ADDRESS DELETED]>:
>>> 久保様
>>>
>>> ご回答ありがとうございます。
>>>
>>>> このWARNのログって、どんなログですか?
>>> 以下のとおりです。
>>>
>>> --- 8.9.23-SNAPSHOT ここから
>>> 2011-01-12 22:40:15,235 [main] INFO
>>> (TorqueJDBCTransformTask#generateXML():267) - $ MY.TBLCONTROL(TABLE)
>>> 2011-01-12 22:40:15,391 [main] INFO
>>> (TorqueJDBCTransformTask#generateXML():267) - $ MY.コントロール(TABLE)
>>> 2011-01-12 22:40:15,437 [main] WARN
>>> (TorqueJDBCTransformTask#generateXML():365) - Failed to get unique
>>> column information! But continue...
>>> java.sql.SQLException: コールに無効な引数があります。
>>> --- 8.9.23-SNAPSHOT ここまで
>>>
>>>> 確認ですが、dfprop のエンコーディングは合っていますか?
>>> 大変失礼いたしました。SJISでした。
>>> UTF-8に修正したところ、WARNもERRORも発生しなくなりました。
>>>
>>> dfpropのエンコードを修正し、8.9.23-SNAPSHOTでの確認結果です。
>>>
>>> テーブル名がアルファベットの場合、
>>> TableSqlname →○
>>> getTableSqlName() →○
>>> EntityのTable属性 →○
>>>
>>> テーブル名が日本語の場合、
>>> TableSqlname →○
>>> getTableSqlName() →○
>>> EntityのTable属性 →○
>>>
>>> と言うわけで、こちらはdfpropのエンコードが原因だったようです。
>>> ありがとうございます。引き続きその他確認をしてみます。
>>>
>>>> $$ALL$$ って指定すると「全てのテーブルに付与する」って
>>>> いう機能をこれから実装しようかなと思ってました。
>>>
>>> ありがとうございます。非常に助かります。
>>> 期待して待たせていただきます。
>>>
>>> 以上、よろしくお願いいたします。
>>>
>>> 井上
>>>
>>> (11/01/13 (木) 18:14), kubo wrote:
>>>> 久保です。
>>>>
>>>> 井上さん、ご確認ありがとうございます。
>>>>
>>>>>> dbflute-0.8.9.23-SNAPSHOT.zip
>>>>> こちらで実行したところ、エラーは回避されました。
>>>>> WARNのログ出力となり、schema.xmlが出力されることが確認できました。
>>>>
>>>> このWARNのログって、どんなログですか?
>>>> 今回の修正では、例外時に「クォートして再実行」としている
>>>> だけなので、今回の現象に関するWARNログは出力していない
>>>> はずなのですが。
>>>>
>>>>>> (ユニーク制約とインデックス情報ちゃんと取れるかな...!?)
>>>>> 申し訳ございませんが、現状ここまでの確認はできておりません。
>>>>
>>>> まあ、後で Doc タスクの SchemaHTML を見て頂ければと。
>>>> (ユニーク制約やインデックスを使ったテーブルで試したときに)
>>>>
>>>>> テーブル名が日本語の場合、
>>>>> TableSqlName →×
>>>>> getTableSqlName() →×
>>>>
>>>> 日本語だと x っていうのが変ですね。
>>>> 確認ですが、dfprop のエンコーディングは合っていますか?
>>>> http://dbflute.sandbox.seasar.org/ja/manual/reference/dfprop/about.html#propspec
>>>> (dfprop は UTF-8 です。例えば、Shift_JIS だとプログラム内部で
>>>> 文字化けしてしまった文字列を判定に使ってしまうかも...!?)
>>>>
>>>>>> (あと、DaoインターフェースのBean属性の値)
>>>>> こちらは、BsDao以下にあるクラスでよろしいのでしょうか?
>>>>> 見たところここのクラスには文字列の記載がありませんでした。
>>>>
>>>> ごめんなさい。完全に間違えてました。
>>>> Daoインターフェースじゃなくて Entity です。
>>>> Seasar.Dao.Attrs.Table 属性が定義されているはずです。
>>>>
>>>>> 上記の方法でうまくいったとしましても、
>>>>> テーブルが300近くあり、まだ機能変更・追加も頻繁に行われている状況で、
>>>>> 現実的に難しいと考えています。
>>>>> お手数ですが、他に何かよいアイデアあればご教授いただけませんでしょうか?
>>>>
>>>> まあ、そんなところじゃないかと思っていたので、
>>>> $$ALL$$ って指定すると「全てのテーブルに付与する」って
>>>> いう機能をこれから実装しようかなと思ってました。
>>>> これは、ちょっとお待ち下さい(今帰って来たばかりで...)。
>>>>
>>>> 2011/1/13 井上忠彦<[E-MAIL ADDRESS DELETED]>:
>>>>> 久保様
>>>>>
>>>>> 早急なご回答ありがとうございます。
>>>>>
>>>>>> dbflute-0.8.9.23-SNAPSHOT.zip
>>>>> こちらで実行したところ、エラーは回避されました。
>>>>> WARNのログ出力となり、schema.xmlが出力されることが確認できました。
>>>>> generate.batもエラーなく動作しました。
>>>>>
>>>>>> (ユニーク制約とインデックス情報ちゃんと取れるかな...!?)
>>>>> 申し訳ございませんが、現状ここまでの確認はできておりません。
>>>>>
>>>>>
>>>>> クォートの件、0.8.9.23-SNAPSHOTにてあらためて試してみました。
>>>>> ご教授いただいたとおり、まずはソース上での確認です。
>>>>>
>>>>> テーブル名がアルファベットの場合、
>>>>> TableSqlName →○:「\"~\"」となっている。
>>>>> getTableSqlName() →○:「\"~\"」となっている。
>>>>>
>>>>> テーブル名が日本語の場合、
>>>>> TableSqlName →×
>>>>> getTableSqlName() →×
>>>>>
>>>>>> (あと、DaoインターフェースのBean属性の値)
>>>>> こちらは、BsDao以下にあるクラスでよろしいのでしょうか?
>>>>> 見たところここのクラスには文字列の記載がありませんでした。
>>>>>
>>>>> littleAdjustmentMap.dfpropの設定は次のとおりとしています。
>>>>>      ; quoteTableNameList = list:{コントロール; TblControl}
>>>>>      ; quoteColumnNameList = list:{キー; 名称; ColKey; ColName}
>>>>>
>>>>>
>>>>> あらためてご相談させてください。
>>>>> 上記の方法でうまくいったとしましても、
>>>>> テーブルが300近くあり、まだ機能変更・追加も頻繁に行われている状況で、
>>>>> 現実的に難しいと考えています。
>>>>> お手数ですが、他に何かよいアイデアあればご教授いただけませんでしょうか?
>>>>>
>>>>>
>>>>> 以上、よろしくお願いいたします。
>>>>>
>>>>> (11/01/13 (木) 9:16), kubo wrote:
>>>>>> 久保(jflute)です。
>>>>>>
>>>>>> なんか昔の記憶で、
>>>>>> Oracle の JDBCドライバが、とあるメソッドだけ
>>>>>> 日本語を許さないというのがあるのを思い出しました。
>>>>>> (PKやFKは大丈夫なのに、なぜかUQやIndexだけ
>>>>>> 日本語テーブルを受け付けない)
>>>>>>
>>>>>> 取り急ぎですが(本当に取り急ぎですが)、
>>>>>> dbflute-0.8.9.23-SNAPSHOT.zip
>>>>>> を使ってみて下さい。
>>>>>> Oracleのときだけ例外が発生したらリトライで
>>>>>> クォートして再実行するようにしています。
>>>>>> (ユニーク制約とインデックス情報ちゃんと取れるかな...!?)
>>>>>>
>>>>>> http://dbflute.net.sandbox.seasar.org/ja/environment/newest.html#snapshot
>>>>>>
>>>>>>> 0.8.9.15までは「WARN」ですが、0.8.9.16以降は「ERROR」となります。
>>>>>>
>>>>>> こういった現象・問題が明確に上がってくるようにするために、
>>>>>> 例外をつぶすのはやめました。まさに今回の件が合致しましたね。
>>>>>>
>>>>>>> またquoteTableNameListについてですが、
>>>>>>> ログに出力されるSQLが変わるかどうか?という判断で問題ないでしょうか?
>>>>>>> 0.8.9.15にて試している現状では、
>>>>>>> ログ中のSQLをみるところ、テーブル名にダブルクォートはついておりません。
>>>>>>
>>>>>> 少なくとも CB の判断はそれでOKです。
>>>>>> S2Daoに任せているところ(insert, update など)も
>>>>>> 基本的にそれでOKだと思います(が、多分というところで)。
>>>>>>
>>>>>> ただ、そのまえに、DBMetaの TableSqlName や
>>>>>> ConditionQuery の getTableSqlName() の値が、
>>>>>> クォートされているかソース上で確認してみて下さい。
>>>>>> (あと、DaoインターフェースのBean属性の値)
>>>>>> これらがクォートされていなければ、そもそも設定の段階で
>>>>>> うまくいってないということになります。
>>>>>>
>>>>>> #
>>>>>> # やはり、英語圏で作られたツールで日本語使うと、
>>>>>> # どの世界でもトラブル発生しやすいものですね...
>>>>>> #
>>>>>>
>>>>>> 2011/1/12 井上忠彦<[E-MAIL ADDRESS DELETED]>:
>>>>>>> 久保様
>>>>>>>
>>>>>>> ご回答ありがとうございます。
>>>>>>>
>>>>>>> ご教授いただきましたquoteTableNameListにて
>>>>>>> 試してみようとしておりますが、現状うまくいっておらず、
>>>>>>> たびたび申し訳ございませんが、確認させていただけませんでしょうか。
>>>>>>> (見づらいメールとなり、申し訳ございません。)
>>>>>>>
>>>>>>> まず、DBFluteを0.8.9.9→0.8.9.22とアップグレードしたところ、
>>>>>>> jdbc.batがエラーとなってしまいました。
>>>>>>>
>>>>>>> --- ここから
>>>>>>> 2011-01-12 22:13:48,079 [main] INFO
>>>>>>> (TorqueJDBCTransformTask#generateXML():265) - $ [Table List]
>>>>>>> 2011-01-12 22:13:48,095 [main] INFO
>>>>>>> (TorqueJDBCTransformTask#processTable():296) - $ MY.TBLCONTROL(TABLE)
>>>>>>> 2011-01-12 22:13:48,516 [main] INFO
>>>>>>> (TorqueJDBCTransformTask#processTable():296) - $ MY.コントロール(TABLE)
>>>>>>> 2011-01-12 22:13:48,547 [main] ERROR
>>>>>>> (DfDBFluteTaskUtil#logException():156) - Look! Read the message below.
>>>>>>> /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
>>>>>>> Failed to execute DBFlute Task 'JDBC'.
>>>>>>>
>>>>>>> [Advice]
>>>>>>> Check the exception messages and the stack traces.
>>>>>>>
>>>>>>> [Database Product]
>>>>>>> Oracle Oracle Database 11g Release 11.2.0.1.0 - 64bit Production
>>>>>>>
>>>>>>> [JDBC Driver]
>>>>>>> Oracle JDBC driver 11.1.0.7.0-Production for JDBC 11.1
>>>>>>> * * * * * * * * * */
>>>>>>> java.lang.IllegalStateException: java.sql.SQLException: コールに無効な引
>>>>>>> 数があります。
>>>>>>> --- ここまで
>>>>>>>
>>>>>>> アップグレード前のバージョン(0.8.9.9)でのdbflute.logの同様の箇所は次の
>>>>>>> とおりです。
>>>>>>>
>>>>>>> --- ここから
>>>>>>> 2011-01-12 22:12:28,628 [main] INFO
>>>>>>> (TorqueJDBCTransformTask#generateXML():273) - $ MY.TBLCONTROL(TABLE)
>>>>>>> 2011-01-12 22:12:40,453 [main] INFO
>>>>>>> (TorqueJDBCTransformTask#generateXML():273) - $ MY.コントロール(TABLE)
>>>>>>> 2011-01-12 22:12:40,484 [main] WARN
>>>>>>> (TorqueJDBCTransformTask#generateXML():369) - Failed to get unique
>>>>>>> column information! But continue...
>>>>>>> java.sql.SQLException: コールに無効な引数があります。
>>>>>>> --- ここまで
>>>>>>>
>>>>>>> 試しに他のバージョンでも試してみたところ、
>>>>>>> 0.8.9.15までは「WARN」ですが、0.8.9.16以降は「ERROR」となります。
>>>>>>> 初歩的なことかもしれませんが、何か情報ございましたら、
>>>>>>> ご教授いただけませんでしょうか?
>>>>>>>
>>>>>>> またquoteTableNameListについてですが、
>>>>>>> ログに出力されるSQLが変わるかどうか?という判断で問題ないでしょうか?
>>>>>>> 0.8.9.15にて試している現状では、
>>>>>>> ログ中のSQLをみるところ、テーブル名にダブルクォートはついておりません。
>>>>>>>
>>>>>>>
>>>>>>> 以上、よろしくお願いいたします。
>>>>>>>
>>>>>>> (11/01/12 (水) 22:42), kubo wrote:
>>>>>>>> 久保(jflute)です。
>>>>>>>>
>>>>>>>> 一応、報告です。
>>>>>>>> quoteTableNameList と quoteColumnNameList は、
>>>>>>>> ReplaceSchema の LoadData に対応していませんでしたが、
>>>>>>>> 次のバージョンでは対応されます(既に修正しました)。
>>>>>>>> dbflute-mysql-example に Example があります。
>>>>>>>>
>>>>>>>> 2011/1/12 kubo<[E-MAIL ADDRESS DELETED]>:
>>>>>>>>> 久保(jflute)です。
>>>>>>>>>
>>>>>>>>> 井上さん、おはようございます。
>>>>>>>>>
>>>>>>>>> こちらをご覧下さい。
>>>>>>>>> http://dbflute.sandbox.seasar.org/ja/environment/supported.html#unsupportedname
>>>>>>>>>
>>>>>>>>> どうにもならない状況であれば、こちらで
>>>>>>>>> 言及されているオプションを試してみて下さい。
>>>>>>>>>
>>>>>>>>> Java版のDBFluteでは、積極的サポートしていないと言いつつ、
>>>>>>>>> 実はテストもそれなりにされており、ほとんどの機能が動く状態です。
>>>>>>>>> しかしながら、DBFlute.NET(C#版)ではその限りではありません。
>>>>>>>>> 実際に動かしてもらわないとその精度はなんとも言えません。
>>>>>>>>> また、DBFlute.NETはS2Dao.NETに処理を委譲しているため、
>>>>>>>>> DBFluteの方で、EntityのBean属性にクォーテーションをしたとしても、
>>>>>>>>> S2Dao.NETでそれをうまく受け取ってくれるかどうかは不明です。
>>>>>>>>> (結局、とりあえず試してもらう以外にありません)
>>>>>>>>>
>>>>>>>>> また、そのオプションが 0.8.9.9 でサポートされていたかどうか、
>>>>>>>>> ちょっとパッとコメントできませんので、これも実際にお試し下さい。
>>>>>>>>> (カラム名の方は比較的最近なので、できないかもしれません)
>>>>>>>>> もし、アップグレード可能であればその方が確実です。
>>>>>>>>>
>>>>>>>>> #
>>>>>>>>> # 質問の背景が明確なので、コメントしやすくとても助かります。
>>>>>>>>> # すいませんがこの後、夜までメール見れないのでご了承下さい。
>>>>>>>>> #
>>>>>>>>>
>>>>>>>>> 2011/1/11 井上忠彦<[E-MAIL ADDRESS DELETED]>:
>>>>>>>>>> 井上と申します。
>>>>>>>>>>
>>>>>>>>>> 質問させてください。
>>>>>>>>>>
>>>>>>>>>> DBFluteにて自動発行されるSQLのテーブル名・カラム名全てに
>>>>>>>>>> ダブルクォートを付けることは可能でしょうか?
>>>>>>>>>>
>>>>>>>>>> 環境は次のとおりです。
>>>>>>>>>>
>>>>>>>>>> 開発言語:C#
>>>>>>>>>> 開発環境:VisualStudio2008
>>>>>>>>>> DB:Oracle 11.1.0.6
>>>>>>>>>> S2Container.net:1.3.17
>>>>>>>>>> DBFlute.net:0.8.9.9
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> そもそも問題としましては、次の通りとなります。
>>>>>>>>>>
>>>>>>>>>> 既に稼働済みのシステムのデータプロバイダーを
>>>>>>>>>> ODP.NETに変更するため調査・確認を行っております。
>>>>>>>>>>
>>>>>>>>>> テーブル名・カラム名に日本語を使用しており、
>>>>>>>>>> 環境によりエラーが発生します。
>>>>>>>>>>
>>>>>>>>>> 実行環境
>>>>>>>>>> OS:7、Vista
>>>>>>>>>> オラクルクライアント:11.1.0.6
>>>>>>>>>> →エラーとならない。
>>>>>>>>>> OS:XP
>>>>>>>>>> オラクルクライアント:11.1.0.6
>>>>>>>>>> →エラーとなる。
>>>>>>>>>>
>>>>>>>>>> エラーの内容は一定でないため、添付させていただきませんが、
>>>>>>>>>> まずは日本語テーブル名・カラム名の対応と思い、
>>>>>>>>>> 上記のとおり、質問をさせていただきました。
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 以上、よろしくお願いいたします。
>>>>>>>>>>
>>>>>>>>>> 井上
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> seasar-dotnet mailing list
>>>>>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>>>>>>
>>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> seasar-dotnet mailing list
>>>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> seasar-dotnet mailing list
>>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>>>
>>>>>> _______________________________________________
>>>>>> seasar-dotnet mailing list
>>>>>> [E-MAIL ADDRESS DELETED]
>>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> seasar-dotnet mailing list
>>>>> [E-MAIL ADDRESS DELETED]
>>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>>>
>>>> _______________________________________________
>>>> seasar-dotnet mailing list
>>>> [E-MAIL ADDRESS DELETED]
>>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>
>>>
>>> _______________________________________________
>>> seasar-dotnet mailing list
>>> [E-MAIL ADDRESS DELETED]
>>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>>>
>> _______________________________________________
>> seasar-dotnet mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


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