如何使用 boost bcp?

Posted

技术标签:

【中文标题】如何使用 boost bcp?【英文标题】:How do I use boost bcp? 【发布时间】:2012-11-04 15:38:14 【问题描述】:

我有 bcp 工具,它是使用 boost 安装程序预先构建的。我想从 boost 中提取我需要的依赖项到一个较小的文件中,因为我希望能够在学校构建这个项目。我正在尝试使用 bcp,但我不明白如何使用它,尽管有这些说明:http://www.boost.org/doc/libs/1_52_0/tools/bcp/doc/html/index.html#bcp.syntax

我尝试在我的 boost 文件夹中的命令提示符下键入:bcp boost/thread.hpp /"E:\documents\Dropbox\School\Comp 445\Comp445_Assign2_v2\boost2":C:\Program Files ( x86)\boost\boost_1_51

它只是吐出一个“使用”指南: bcp 数据库表 |查询 在 |出|查询 |格式 数据文件

我也试过:bcp timed_mutex /, bcp mutex / 无济于事。

我觉得这真的很令人困惑;它看起来完全不像他们在 boost 文档中所说的那样,而且我不确定这在任何情况下意味着什么。我发现了很多人们推荐 bcp 的线程,但我很难找到人们询问如何使用它的任何地方。

【问题讨论】:

"bcp dbtable | query" 你确定你正在运行 boost 实用程序而不是例如SQL Server 的批量复制工具?您是否有已编译的 boost BCP 可执行文件?它是在您当前的文件夹中还是在系统 PATH 中? @Rup 您可能应该将此作为答案发布,因为 SQL 的 BCP 给出了相同的错误消息。 @rhalbersma 谢谢,但这只是问题的一半:虽然这告诉他他做错了什么,但没有告诉他如何真正让它发挥作用。 @Rup 查看我的答案以了解如何解决它 在发布Boost相关问题时,一定要加C++标签,让更多人看到。 【参考方案1】:

正如@Rup 在 cmets 中指出的那样,可能的错误是您的系统上存在 SQL Server 的批量复制程序。该程序也被命名为bcp.exe,并且很可能出现在您的PATH 环境变量中。 Boost bcp 要么不存在于您的PATH 中,要么前面有SQL bcp(一旦找到匹配项,Windows 将停止搜索其他程序)。

要调用 Boost bcp,您应该

    将其重命名为其他名称(例如boost-bcp)和update your PATH variable 以反映这一点,并确保没有其他冲突名称。然后使用“boost-bcp”--YOUR_OPTIONS 调用。 调用 Boost bcp 并使用其当前位置的完整路径,例如"C:\Boost\bcp.exe" --YOUR_OPTIONS

【讨论】:

以上是关于如何使用 boost bcp?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 bcp 从平面文件创建格式文件

使用boost模块而不使用boost的其余部分?

如何使用 BCP 或 Sql Server Management Studio 从 Sql Server 中获取 BLOB 数据?

如何把SQLServer表数据导出为Excel文件

如何把SQLServer表数据导出为Excel文件

如何删除双引号并跳过 bcp 加载到 SQL Server 中的最后 3 行?