快速开始
本节将展示通过 C++ API 连接、使用及操作单节点 DolphinDB 服务器的完整操作。通过阅读,您将了解到如何使用 C++ API 连接 DolphinDB 并与之交互、以及如何操作数据库表。
准备 C++ API 动态库
参考编译章节编译出用户所使用平台的 C++ API 动态库,以备在下面的示例程序中使用。
搭建 DolphinDB 服务器
在 DolphinDB 官网下载 DolphinDB 服务器,并参考单节点部署与升级启动 DolphinDB 服务。
有关 Linux 系统部署准备, 请参考:Linux 系统部署准备。
如果您想尝试更多部署方式,参考:部署。
建立连接
DBConnection 可以实现客户端与服务器之间的信息交互。C++ API 通过 DBConnection 在 DolphinDB 服务器上执行脚本和函数,同时实现双向的数据传递。
#include "DolphinDB.h"
#include <iostream>
using namespace dolphindb;
int main(int argc, char* argv[]) {
DBConnection conn;
bool ret = conn.connect("127.0.0.1", 8848);
if (!ret) {
std::cout << "Failed to connect to the server" << std::endl;
return 0;
}
ConstantSP result= conn.run("1+1");
std::cout << result->getString() << std::endl;
return 0;
}
上述示例代码中,在第7行去连接 DolphinDB 数据库,并在第8行判断是否连接成功。
数据交互
通过 DBConnection 可以将数据从本地上传至 DolphinDB 或者从 DolphinDB 下载数据到本地。
#include "DolphinDB.h"
#include <iostream>
using namespace dolphindb;
int main(int argc, char* argv[]) {
DBConnection conn;
bool ret = conn.connect("127.0.0.1", 8848, "admin", "123456");
if (!ret) {
std::cout << "Failed to connect to the server" << std::endl;
return 0;
}
ConstantSP s = Util::createString("123");
conn.upload("s", s);
ConstantSP r = conn.run("s");
std::cout << r->getString() << std::endl;
return 0;
}
上述示例代码中,在第13行向 DolphinDB 上传了一个类型为 STRING 的数据;在第14行又将该数据从 DolphinDB 读取回本地;第15行会在标准输出打印其值“123”。有关函数的详细使用说明请见后续章节。
数据库操作
通过 DBConnection 可以在 DolphinDB 端执行脚本,从而操作数据库。
int main(int argc, const char **argv)
{
DBConnection conn;
bool ret = conn.connect("127.0.0.1", 8848, "admin", "123456");
if (!ret) {
std::cout << "Failed to connect to the server" << std::endl;
return 0;
}
conn.run(R"(
n=1000000
ID=rand(10, n)
x=rand(1.0, n)
t=table(ID, x)
db=database(directory="dfs://hashdb", partitionType=HASH, partitionScheme=[INT, 2])
pt = db.createPartitionedTable(t, `pt, `ID)
pt.append!(t);
)");
ConstantSP re = conn.run("select count(x) from pt;");
std::cout << re->getString() << std::endl;
return 0;
}
在上述示例代码中,第4行与 DolphinDB 建立连接,随后第9至第17行通过脚本在 DolphinDB 中创建变量、数据库以及数据表,并向表中写入数据,第18行执行一个 SQL 查询语句并返回查询结果。有关函数的详细使用说明请见后续章节。