0
プロジェクトでMFC ODBCとMariaDBを使用しています。しかし、バイナリデータを書き込もうとすると、約240バイトしか書き込まれず、書き込みが終了します。バイナリデータを書き込むときには、約240バイトしか書き込まれません。
rs_curve
がそれにRFXと
CRecordset
派生クラスである
TRY
{
CLocalHistoryCurve rs_curve(NULL);
if (rs_curve.IsOpen())
{
rs_curve.Close();
}
rs_curve.m_strFilter.Format(_T("furnace_number='%s' AND batch_number='%s' AND tube_number=%d"),
str_f, str_b, n_t);
rs_curve.Open();
rs_curve.MoveFirst();
rs_curve.Edit();
rs_curve.m_velo_curve.SetSize(arr.GetSize());
rs_curve.m_velo_curve.Copy(arr);
rs_curve.Update();
rs_curve.Close();
}
CATCH(CDBException, e)
{
wcout << e->m_strError.GetString() << endl;
}
END_CATCH
:ここで私が使用したコードです。 m_velo_curve
はCByteArray
のメンバーで、書き込む前は6040バイトです。このレコードセットを開いてレコードを見つけるときに問題はありません。
RFX_Binary(pFX, _T("[velo_curve]"), m_velo_curve, 65535);
velo_curve
が65535バイトの最大容量を持つBLOB
列である:
は、ここで私が使用RFX関数です。
6040バイトを一度に列に書き込むにはどうすればよいですか?
また、見つかった場合は間違いを報告してください。前もって感謝します。
バイト#6040はゼロバイトですか? 'Copy()'の制限は何ですか? (私は20年でMFCまたはODBCに触れていません) –
2 decades ?! m_velo_curveは最初から0バイトありますが、それでも書き込むことができるので、0バイトがその動作に影響するとは思いません。 'Copy()'は 'CByteArray'のメンバ関数です。私はそれが正確な量のバイトを宛先にコピーすると確信しています。 –
この問題は解決されました。データを照会するときは間違いです。データは実際に正しく更新され、 –