我想插入数据到一个访问数据库表中的nexusdb表。我为此使用了两个查询。一个用于从访问数据库中选择数据,另一个用于插入到nexusdb。我不想用循环插入。有什么方法可以直接插入所有选定的数据集?从数据集中插入数据到delphi
回答
有什么办法直接插入所有选定的数据集?
如果两个数据库分别为,比如说,MS SQL Server或其他一些后端SQL服务器,如MySQL,你可以这样做,但MS Access和NexusDB,没有我所知道的之间。他们似乎有共同的唯一的数据库访问连接器是ODBC和afaik,不支持不同驱动程序之间的异类查询(所以你不能做一个“插入到sourceserver.database.table select * from source.database .table“)
所以我认为你被困在一个循环中。唯一真正的问题是你是否必须自己编写循环或是否隐藏在库代码中。
下面的代码使用FireDAC的TFDDataMove组件在表格间移动数据。当然,使用它需要目标服务器支持FireDAC或ODBC。正如Uwe Raabe所说,截至目前(德尔福当前版本为西雅图),FireDAC不支持NexusDB,反之亦然。但是,根据他们的网站,NexusDB有一个ODBC驱动程序可用。虽然我没有安装NexusDB,但下面的ODBC驱动程序可以正常工作,所以应该使用NexusDB。
procedure TForm1.TestDataMove;
var
Item : TFdMappingItem;
begin
Item := FDDataMove1.Mappings.Add;
Item.SourceFieldName := 'ID';
Item.DestinationFieldName := 'ID';
Item := FDDataMove1.Mappings.Add;
Item.SourceFieldName := 'Name';
Item.DestinationFieldName := 'Name';
FDDataMove1.Source := FDTable1;
FDDataMove1.Destination := FDTable2;
FDDataMove1.Options := FDDataMove1.Options - [poOptimiseSrc];
FDDataMove1.Execute;
FDConnection2.Connected := False;
FDTable2.Open;
end;
从西雅图开始,FireDAC不支持NexusDB。由于DataMove组件的来源实际上可以是一个简单的TDataSet,所以如果您想将Nexus表中的数据移动到FD兼容的数据集中,这种方法就可以工作,但不会按照此处要求的方式进行。 –
也许'TFDBatchMove'是更好的方法:http://docwiki.embarcadero.com/Libraries/Seattle/en/FireDAC.Comp.BatchMove.TFDBatchMove –
@UweRaabe:谢谢。似乎有一个运动来让Nexus支持FireDAC,但我不知道它是什么。 – MartynA
- 1. 从列表视图插入数据到数据库delphi
- 2. 大数据集从MySQL插入到neo4j
- 3. 从Web服务提取数据到Delphi中的数据集
- 4. 插入数据集
- 5. 在Delphi中通过TADOCommand插入数据
- 6. 使用LINQ从数据集插入数据到SQL
- 7. 从datagridview插入数据到数据库
- 8. 从数据库插入数据到表
- 9. 从数据集中将数据插入表中
- 10. 防止从.NET数据集中插入到数据库中的负数ID
- 11. 插入到Mysql数据库后更新数据集数据
- 12. 错误插入数据集数据到数据库表
- 13. C#将数据集中的数据插入到datagridview中
- 14. 如何将图形数据集插入到Orientdb数据库中?
- 15. 不插入数据到数据库中
- 16. 数据未插入到数据库中
- 17. 数据未插入到数据库中
- 18. 使用C#中的数据表将数据插入到数据集中.net
- 19. 将数据从数据库插入数组并将数据嵌入到textarea中
- 20. 数据集插入表
- 21. 将数据集插入DataTable
- 22. 插入数据集到Oracle表
- 23. Unitils数据集 - 插入到sybase datetime列
- 24. C#插入到来自数据集
- 25. 如何在MyQuery中插入数据到MySQL表中(Delphi)
- 26. 从表中插入数据
- 27. 中插入数据从CSV
- 28. C#从数据表插入数据到SQL Server数据库
- 29. 将数据从数据表插入到数据库的问题#
- 30. 从列表中插入数据到DB
你应该指定你的Delphi版本。 –
@mjn不,我希望没有循环。 – Ishanka
@UweRaabe德尔福10西雅图 – Ishanka