初日 最新 目次 MAIL HOME


*-- To Tell The Truth --*
Cruz
MAIL
HOME

My追加

2001年12月26日(水)
独自レコードセット修正

昨日のままだと、文字列はみんな化け化けになっています。

修正版はこちら。

class CRecordSet : public CADORecordBinding
{
// レコードセット設定マクロ
BEGIN_ADO_BINDING(CRecordSet)
 ADO_VARIABLE_LENGTH_ENTRY2(1,
              adChar,
              stFdsData.cpCardNo,
              sizeof(stFdsData.cpCardNo),
              lau_lCardNoStatus,
              FALSE)
 ADO_VARIABLE_LENGTH_ENTRY2(2,
              adChar,
              stFdsData.cpRiyouYMD,
              sizeof(stFdsData.cpRiyouYMD),
              lau_lRiyouYMDStatus,
              FALSE)
 ADO_FIXED_LENGTH_ENTRY(3,
            adInteger,
            stFdsData.iRiyouAmt,
            lau_lRiyouAmtStatus,
            FALSE)
 ADO_VARIABLE_LENGTH_ENTRY2(10,
              adVarChar,
              stFdsData.cpKmtYagou,
              sizeof(stFdsData.cpKmtYagou),
              lau_lKmtYagou,
              FALSE)
END_ADO_BINDING()
public:
 USERDATA sData;

ULONG lau_lCardNoStatus;
ULONG lau_lRiyouYMDStatus;
ULONG lau_lRiyouAmtStatus;
ULONG lau_lKmtYagou;
};
文字列の取得の際は、ADO_FIXED_LENGTH_ENTRYではなくADO_VARIABLE_LENGTH_ENTRY2を使いましょう。

VarCharじゃなくてCharでも。
そうじゃないと文字化けします。

理由は不明。
DB2だからなのか・・?