[seasar-dotnet:1743] [DBFlute.NET]OutsideSqlにて不適切な構文がありますのエラー
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2010年 6月 19日 (土) 12:42:29 JST
お世話になっております、uparrowです。
大変便利にDBFluteを利用させていただいております。
複雑なSQLを発行したく、初めてOutsideSqlに挑戦しております。
OutsideSqlを用いでデータの取得を行いたいのですが、
原因がわからない実行時エラーが出て困っております。
String path = TZaikoDataBhv.PATH_selectCurrentZaiko;
CurrentZaikoPmb pmb = new CurrentZaikoPmb();
pmb.LatestMonthryTanaDate = "20091231";
pmb.BasisDate = "20100218";
pmb.FrHinmokuCd = null;
pmb.ToHinmokuCd = null;
pmb.FrSoukoCd = "0001";
pmb.ToSoukoCd = "0001";
IList<CurrentZaiko> curZaikoList = tZaikoDataBhv.OutsideSql().SelectList<CurrentZaiko>(path, pmb);
このようにして外出しSQLを実行したのですが、
SelectListのところでExceptionが発生します。
使用しているSQLのファイルは添付したものとなります。
(実際はもっと複雑なSQLなのですが、原因と思われる部分に着目し一部を切り出しました。)
ex.Messageには次のようなメッセージが設定されておりました。
==== ここから ====
Look! Read the message below.
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
The SQL failed to execute!
[Advice]
Please confirm the Exception message.
[Exception]
Seasar.Framework.Exceptions.SQLRuntimeException
[ESSR0071]SQLException occured, because System.Data.SqlClient.SqlException: 'SOUKO_CD' 付近に不適切な構文があります。
場所 System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
場所 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
場所 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
場所 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
場所 System.Data.SqlClient.SqlDataReader.ConsumeMetaData()
場所 System.Data.SqlClient.SqlDataReader.get_MetaData()
場所 System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)
場所 System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)
場所 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)
場所 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method)
場所 System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method)
場所 System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
場所 System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
場所 Seasar.Framework.Util.CommandUtil.ExecuteReader(IDataSource dataSource, IDbCommand cmd)
[NextException]
System.Data.SqlClient.SqlException
'SOUKO_CD' 付近に不適切な構文があります。
ErrorCode = -2146232060
HelpLink =
==== ここまで ====
なお、
pmb.FrSoukoCd = null;
pmb.ToSoukoCd = null;
とすると、例外が発生せず、データの取得は成功します。
条件句の部分が問題なのかもしれませんが、具体的に何が間違っているのかわからない状態です。
サンプルを参考に、/*IF*/ を利用したつもりなのですが。。。
なにか、方法に誤りがあるのでしょうか?
または、問題となっている箇所がわかる方法はございますでしょうか?
このSQLを発行すると問題なくデータが取得できますし、
outside-sql-test.batも成功しました。
使用しているDBFluteはdbflute-0.8.9.9となります。
以上、よろしくお願いいたします。
--
<[E-MAIL ADDRESS DELETED]>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: TZaikoDataBhv_selectCurrentZaiko.sql
Type: application/octet-stream
Size: 1154 bytes
Desc: 無し
URL: <http://ml.seasar.org/archives/seasar-dotnet/attachments/20100619/9cfbc6b5/attachment.obj>
seasar-dotnet メーリングリストの案内