我試圖實現從tClientDataSet向數據庫表(數據庫是Sybase ASA)插入/複製記錄。將ClientDataset記錄複製到數據庫表
我也有一個窗體上有一個cxgrid它可以看到來自CD的記錄,所以我知道里面有記錄。
一個按鈕,點擊我做到以下幾點:
with dmData.cds do
begin
Close;
Open;
First;
while not (EOF) do
begin
dmData.qry1.Open;
dmData.qry1.Insert;
dmData.qry1.FieldByName('field1').AsString := dmData.cds.FieldByName('field1').AsString;
dmData.qry1.FieldByName('field2').AsString := dmData.cds.FieldByName('field2').AsString;
dmData.qry1.FieldByName('field3').AsString := dmData.cds.FieldByName('field3').AsString;
dmData.qry1.Post;
Next;
end;
end;
後這樣做了,但在數據庫表中查找時沒有插入記錄我沒有得到任何錯誤。
我不知道我在做什麼錯,任何幫助將不勝感激。
正如Kobim所說,dmData.qry1中的SQL可能不正確。請[編輯]您的問題並顯示使用您的查詢。 –
在'ApplyUpdates'結尾添加:此時,您正在更新ClientDataSet中的數據; 'ApplyUpdates'將數據傳輸到底層數據集。 –
重要的問題是:你用什麼樣的查詢將記錄插入數據庫以及他的SQL是什麼?如果我們不知道這一點,我們無法幫助你。無論如何,您可以使用:'dmQuery.qry1.SQL:='insert into table_name(field1,field2,field3)values(dmData.cds.FieldByName('field1')。AsString,dmData.cds.FieldByName('field2') .AsString,dmData.cds.FieldByName( '字段3')AsString)。 'dmQuery.qry1.ExecSql;' –