快速开始

本节将展示通过 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 查询语句并返回查询结果。有关函数的详细使用说明请见后续章节。