這是一個非常簡短的描述,我如何將數據輸入數據庫。複製整個記錄然後插入它
procedure TMain_Form.AdvGlowButton1Click(Sender: TObject);
begin
MYQUERY.Close;
MYQUERY.SQL.Clear;
MYQUERY.SQL.Add('INSERT INTO MYTABLE (FOR_DATE,SOMETEXT) VALUES(:a1,:a2)');
MYQUERY.Params.ParamByName('a1').asDate :=PlannerCalendar1.Date;
MYQUERY.Params.ParamByName('a2').Value :=cxMemo1.Lines.Text ;
MYQUERY.ExecSQL;
end;
這工作正常。數據被插入。它顯示在cxGrid1中。
現在,我想要做的是將此cxGrid1中的整個記錄(僅限於選定的記錄)複製並粘貼(插入)到PlannerCalendar1中選定的不同日期。
我有'發送到選定的日期'選項實現cxgridpopup菜單,但我不知道如何從cxGrid1複製底層數據。
目標是在日曆中選擇一個日期,然後轉到cxGrid1,選擇一條記錄,右鍵單擊它並(使用彈出菜單選項),然後將整個選定的記錄插入新選擇的日期。基本上克隆記錄,但到了不同的日期。我怎樣才能做到這一點 ?
(PlannerCalendar1是TMS組件)
編輯:這裏找到一些信息https://www.devexpress.com/Support/Center/Question/Details/A302 但不知道它如何適合我的情況。
編輯: 我試過這樣的,它不會工作:
Procedure CopyTableRecord(View: TcxGridTableView; IndexToCopy : Integer);
var i:integer;
PlannerCalendar1:TPlannerCalendar;
Begin
View.DataController.Insert;
For I := 0 To Pred(View.ColumnCount) Do
View.Columns[I].EditValue := view.DataController.Values[1, I];
View.Columns[1].EditValue := PlannerCalendar1.Date;
View.DataController.Post(True);
End;
procedure TMain_Form.Sendto1Click(Sender: TObject);
begin
CopyTableRecord(cxGrid1DBTableView1, cxGrid1DBTableView1.DataController.FocusedRecordIndex);
end;
Uhhh雷內,你是對的。我一直都是盲人。事實上,我所需要的只是對日期和密碼的更新查詢:a2,就像您建議的主鍵。謝謝! – user763539