如果您無法以 SQL 命令更新 MEMO 欄位的話, 可使用一個 TTable 元件 配合 UpdateSQL 做更新的工作,例如:資料表 Item 有一個備註欄位 'Notes',現在利用一個 TTable 來更新這個備註欄,其餘欄位仍舊使用 UpdateSQL 來更新,注意 TUpdateSQL 中更新的欄位必須排除 'Notes'。 以下範例中使用到的物件: tblUpdate: TTable; updItem: TUpdateSQL; procedure TDmod.qryItemUpdateRecord(DataSet: TDataSet; UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction); var KeyFieldName, KeyVal: string; begin KeyFieldName := 'ITEM_NO'; tblUpdate.Close; tblUpdate.TableName := 'Item'; case UpdateKind of //----------------------------------------------- ukModify: begin tblUpdate.Open; KeyVal := DataSet.FieldByName(KeyFieldName).OldValue; if not tblUpdate.Locate(KeyFieldName, KeyVal, []) then begin UpdateAction := uaFail; Exit; end; tblUpdate.Edit(); tblUpdate.FieldValues['Notes'] := DataSet.FieldValues['Notes']; tblUpdate.Post(); updItem.Apply(UpdateKind); end; //----------------------------------------------- ukInsert: begin updItem.Apply(UpdateKind); tblUpdate.Open; KeyVal := DataSet.FieldByName(KeyFieldName).AsString; if not tblUpdate.Locate(KeyFieldName, KeyVal, []) then begin UpdateAction := uaFail; Exit; end; tblUpdate.Edit(); tblUpdate.FieldValues['Notes'] := DataSet.FieldValues['Notes']; tblUpdate.Post(); end; //--------------------------------------------------------- ukDelete: updItem.Apply(UpdateKind); end; UpdateAction := uaApplied; end;