在Oracle中,Blob字段不能直接写入,需要先写入一个空的记录,然后修改。
代码如下:
// 插入一个新记录
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("INSERT mytable(NO, BLOBFIELD) VALUE(:INDEX, EMPTY_BLOB())");
Query->ParamByName("INDEX")->AsInteger = No;
Query->ExecSQL();
// 修改刚才的记录,写入Blob数据
Query->SQL->Clear();
Query->SQL->Add("UPDATE mytable SET BLOBFIELD=:BLOBDATA WHERE NO=:INDEX");
Query->ParamByName("INDEX")->AsInteger = No;
Query->ParamByName("BLOBDATA")->SetBlobData(Buffer,ByteCount);
Query->ExecSQL();
/ 修改刚才的记录,写入Blob数据
Query->SQL->Clear();
Query->SQL->Add("UPDATE mytable SET BLOBFIELD=:BLOBDATA WHERE NO=:INDEX");
Query->ParamByName("INDEX")->AsInteger = No;
Query->ParamByName("BLOBDATA")->SetBlobData(Buffer,ByteCount);
Query->ExecSQL();   
浅妄薄见,望与斟酌