[DBFLUTE-324] {C#}: OUTパラメータを含んだストアドプロシージャの実行(ResultSetは除く) Created: 2008-09-07 Updated: 2008-09-25 Resolved: 2008-09-25 |
|
| Status: | Closed |
| Project: | DBFlute |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major |
| Reporter: | jflute | Assignee: | jflute |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
S2Dao.NETを参考に |
| Comments |
| Comment by jflute [ 2008-09-25 ] |
|
Oracleでもできた。 |
| Comment by jflute [ 2008-09-22 ] |
|
C#からOracleにつなぐやり方が不明。 ちょと挫折するかも。。。 |
| Comment by jflute [ 2008-09-20 ] |
|
> 戻りのパラメータの値が「DBNull」の場合に |
| Comment by jflute [ 2008-09-20 ] |
|
IDbDataParameter.Sizeは、指定しない場合はパラメータ値から推論されるそうだ。 |
| Comment by jflute [ 2008-09-20 ] |
|
Oracleのデータプロバイダについて |
| Comment by jflute [ 2008-09-18 ] |
|
IDbDataParameterの扱いを変えたら正常に動いた。 IDbDataParameter parameter = command.CreateParameter();
parameter.ParameterName = parameterName;
parameter.Direction = ppt.ParameterDirectionType;
parameter.Value = ppt.GetValue(dto);
parameter.DbType = dbType;
// [Under Review]: @jflute -- If this is valid, the exception occured on MySQL.
// parameter.Size = 4096;
また、戻りのパラメータの値が「DBNull」の場合に |
| Comment by jflute [ 2008-09-18 ] |
|
かなりいいところまできて、この例外。 System.ArgumentOutOfRangeException: インデックスおよび長さは文字列内の場所を参照しなければなりません。 パラメータ名: length 場所 System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy) 場所 MySql.Data.Types.MySqlString.Serialize(PacketWriter writer, Boolean binary, Object value, Int32 length) 場所 MySql.Data.MySqlClient.MySqlParameter.Serialize(PacketWriter writer, Boolean binary) 場所 MySql.Data.MySqlClient.MySqlCommand.SerializeParameter(PacketWriter writer, String parmName) 場所 MySql.Data.MySqlClient.MySqlCommand.PrepareSqlBuffers(String sql) 場所 MySql.Data.MySqlClient.MySqlCommand.ExecuteNonQuery() 場所 Seasar.Framework.Util.CommandUtil.ExecuteNonQuery(IDataSource dataSource, IDbCommand cmd) |
| Comment by jflute [ 2008-09-09 ] |
|
ProcedureMetaDataなどのS2Daoクラスは独自に作成する。 |