【发布时间】:2015-08-03 10:31:38
【问题描述】:
我试图将记录从 tClientDataSet 插入/复制到数据库表(数据库是 Sybase ASA)。
我还有一个带有 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 可能不正确。请edit您的问题并显示使用您的查询。
-
最后添加'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('field3').AsString); ' dmQuery.qry1.ExecSql;
标签: delphi delphi-xe2 sybase tclientdataset tcxgrid