ここで問題を解決しています。私はデータをiにアップロードしているC#.NETアプリケーションを持っています。 1つのアプリケーションでは、DDS(古い習慣は死なない)として定義されたファイルを時間フィールドと共に持っています。この新しいアプリケーションでは、DDLを使用してファイルを作成していますが、時間フィールドもあります。私は基本的に、作業アプリケーションから新しいアプリケーションにラインをコピーして貼り付けたが、まだ動作しません。私が見ることのできる唯一の違いはDDS対DDLです。だれかが何らかの違いがあることを確かめることができますか?DDS時間とDDL時間
DDL:
CREATE TABLE EGOVLOG.TRANYYMMDD (
...
PAYMENTDATE FOR COLUMN PAYDATE DATE NOT NULL DEFAULT CURRENT_DATE ,
PAYMENTTIME FOR COLUMN PAYTIME TIME NOT NULL DEFAULT CURRENT_TIME ,
...
PRIMARY KEY(ID))
RCDFMT TRANYYMMDD;
DDS:
A RSSIGNDATE L ALIAS(SUPERVISOR_SIGNED_DATE)
A COLHDG('SUPERVISOR' 'SIGNED DATE')
A TEXT('SUPERVISOR SIGNED DATE')
A RSSIGNTIME T ALIAS(SUPERVISOR_SIGNED_TIME)
A COLHDG('SUPERVISOR' 'SIGNED TIME')
A TEXT('SUPERVISOR SIGNED TIME')
ワーキングライン:
// Outputs "15.21.47"
cmd.Parameters.Add("@SUPERVISOR_SIGNED_TIME", iDB2DbType.iDB2Time).Value =
leaveRequest.SupervisorSignedDateTime.ToString("HH.mm.ss");
非作業ライン:
// Outputs "15.21.47"
cmd.Parameters.Add("@PAYMENTTIME", iDB2DbType.iDB2Time).Value =
transactions.Transaction.TransactionTimestamp.ToString("HH.mm.ss");
leaveRequest.SupervisorSignedDateTime
とtransactions.Transaction.TransactionTimestamp
は、同じC#タイプ(DateTime
)です。
エラーがある:
IBM.Data.DB2.iSeries.iDB2ConversionExceptionが
メッセージ未処理であった=変換エラーが発生しました。
ソース= IBM.Data.DB2.iSeries
MessageCode = 111
MessageDetails =パラメータ:13
更新:は謎に追加するには、私が走ったのインサート手動で、これは動作します。
INSERT INTO TABLE VALUES(...'10/19/2011', '15:21:47', ...)
'TransactionTimestamp'が本当に' DateTime'またはそれが 'TIMESTAMP'フィールド(すなわち、行ベースのバージョン識別子)ですか? – Yuck
呼び出しているストアドプロシージャでは、SUPERVISOR_SIGNED_TIMEとPAYMENTTIMEの両方がまったく同じデータ型ですか? – NotMe
@Yuckそれは私のために悪い名前の選択だった... 'TransactionTimestamp'は' DateTime'です。 –