0
我在項目上使用MFC ODBC和MariaDB。但是,當我試圖寫入二進制數據時,它只會寫入大約240個字節,然後寫入完成。下面是我使用的代碼:寫入二進制數據時僅寫入大約240個字節
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
其中rs_curve
是RFX一個CRecordset
派生類在裏面。 m_velo_curve
是一個CByteArray
成員,在我寫入之前有6040個字節。打開此記錄集並查找記錄時沒有問題。
這裏是RFX函數使用:
RFX_Binary(pFX, _T("[velo_curve]"), m_velo_curve, 65535);
其中velo_curve
是BLOB
柱,以65535個字節的最大容量。
如何將6040字節一次寫入列?
另外,如果您發現任何錯誤,請報告任何錯誤。提前致謝。
字節#6040是否爲零字節? 'Copy()'有什麼限制? (我在二十年沒有碰過MFC或ODBC。) –
20年?! m_velo_curve從一開始就有零字節,但它仍然可以寫入,所以我不認爲零字節會影響它的行爲。 'Copy()'是'CByteArray'的成員函數。我相信它會將確切數量的字節複製到目標。 –
這個問題解決了。查詢數據時是錯誤的。數據實際更新正確, –