2020-11-20 , version 3.0
概述
本文档介绍松果时序数据库(以下又称PinusDB)3.0版本的C/C++ SDK使用。
读者对象
本文档适用于使用松果时序数据库的开发工程师。
联系我们
如果您有任何疑问或建议,请提交Issue或发送邮件到 zhangqhn@foxmail.com
在项目中引用pdb_csdk.lib并包含pdb_api.h文件,将pdb_csdk.dll拷贝到执行程序的目录下即可(注意:松果时序数据库提供的c sdk为64位版本,若需要32位版本请自行下载源码编译即可)。
一个简单的示例:
#include <time.h>
#include <stdio.h>
#include "pdb_api.h"
int main(int argc, char* argv[])
{
PdbErr_t retVal = PdbE_OK;
int handle = 0;
size_t sucessCnt = 0;
char timeBuf[32];
char sqlBuf[1024];
retVal = pdb_connect("127.0.0.1", 8105, &handle);
if (retVal != PdbE_OK)
{
std::cout << "连接数据库失败:" << pdb_get_error_msg(retVal) << std::endl;
return 0;
}
do {
retVal = pdb_login(handle, "sa", "pinusdb");
if (retVal != PdbE_OK)
{
std::cout << "登录失败:" << pdb_get_error_msg(retVal) << std::endl;
break;
}
//创建表
retVal = pdb_execute_non_query(handle,
"create table tab01(\
devid bigint,\
tstamp datetime,\
val01 bigint,\
val02 float)");
if (retVal != PdbE_OK)
{
std::cout << "创建表失败:" << pdb_get_error_msg(retVal) << std::endl;
break;
}
//创建设备
retVal = pdb_execute_insert(handle,
"insert into sys_dev(tabname, devid, devname)\
values('tab01', 1, 'dev_01'), ('tab01', 2, 'dev_02')", &sucessCnt, nullptr);
if (retVal != PdbE_OK)
{
std::cout << "创建设备失败:" << pdb_get_error_msg(retVal) << std::endl;
break;
}
time_t t;
tm tm;
time(&t);
localtime_s(&tm, &t);
sprintf_s(timeBuf,"%d-%d-%d %d:%d:%d", (1900 + tm.tm_year), (1 + tm.tm_mon), tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec);
sprintf_s(sqlBuf,
"insert into tab01(devid, tstamp, val01, val02) \
values(1, '%s', 1023, 57.35),(2, '%s', 10, 32.337)",
timeBuf, timeBuf);
retVal = pdb_execute_insert(handle, sqlBuf, &sucessCnt, nullptr);
if (retVal != PdbE_OK)
{
std::cout << "插入数据失败:" << pdb_get_error_msg(retVal) << std::endl;
break;
}
} while (false);
pdb_disconnect(handle);
return 0;
}
连接松果时序数据库。
函数原型
PdbErr_t
pdb_connect(
const char* pHostName,
int32_t port,
int32_t* pHandle
);
参数
返回值
执行成功返回PdbE_OK,执行失败返回对应错误码。
断开松果时序数据库。
函数原型
PdbErr_t
pdb_disconnect(
int32_t handle
);
参数
返回值
执行成功返回PdbE_OK,执行失败返回对应错误码。
登录松果时序数据库。
函数原型
PdbErr_t
pdb_login(
int32_t handle,
const char* pUser,
const char* pPassword
);
参数
返回值
执行成功返回PdbE_OK,执行失败返回对应错误码。
根据错误码获取错误描述信息。
函数原型
const char*
pdb_get_error_msg(
int32_t errorCode
);
参数
返回值
返回错误码的描述信息。
插入数据到松果时序数据库。
函数原型
PdbErr_t
pdb_execute_insert(
int32_t handle,
const char* pSql,
size_t* pSucessCnt,
size_t* pPosition
);
参数
返回值
执行成功返回PdbE_OK,执行失败返回对应错误码。
查询松果时序数据库中的数据。
函数原型
PdbErr_t
pdb_execute_query(
int32_t handle,
const char* pSql,
void** ppTable
);
参数
执行非查询语句(修改密码,添加用户等)。
函数原型
PdbErr_t
pdb_execute_non_query(
int32_t handle,
const char* pSql
);
参数
返回值
执行成功返回PdbE_OK,执行失败返回对应错误码。
释放由pdb_execute_query返回的结果表。
函数原型
PdbErr_t
pdb_table_free(
void* pTable
);
参数
返回值
执行成功返回PdbE_OK,执行失败返回对应的错误码。
获取表中列的数量。
函数原型
PdbErr_t
pdb_table_get_column_count(
void* pTable,
size_t* pCnt
);
参数
返回值
执行成功返回PdbE_OK,执行失败返回对应错误码。
获取表中列的信息。
函数原型
PdbErr_t
pdb_table_get_column_info(
void* pTable,
size_t columnIdx,
ColumnInfo* pColInfo
);
参数
返回值
执行成功返回PdbE_OK, 执行失败返回对应的错误码。
获取表中行的数量。
函数原型
PdbErr_t
pdb_table_get_row_count(
void* pTable,
size_t* pCnt
);
参数
根据行下标及列下标判断字段值是否为null。
函数原型
PdbErr_t
pdb_table_val_is_null_by_colidx(
void* pTable,
size_t rowIdx,
size_t colIdx,
bool* pIsNull
);
参数
根据行下标及列名判断字段值是否为null。
函数原型
PdbErr_t
pdb_table_val_is_null_by_colname(
void* pTable,
size_t rowIdx,
const char* pColumnName,
bool* pIsNull
);
参数
根据行下标及列下标获取bool类型的值。
函数原型
PdbErr_t
pdb_table_get_bool_by_colidx(
void* pTable,
size_t rowIdx,
size_t colIdx,
bool* pVal
);
参数
返回值
执行成功返回PdbE_OK, 执行失败返回对应的错误码。
根据行下标及列名获取bool类型的值。
函数原型
PdbErr_t
pdb_table_get_bool_by_colidx(
void* pTable,
size_t rowIdx,
const char* pColumnName,
bool* pVal
);
参数
返回值
执行成功返回PdbE_OK, 执行失败返回对应的错误码。
根据行下标及列下标获取int8_t类型的值。
函数原型
PdbErr_t
pdb_table_get_tinyint_by_colidx(
void* pTable,
size_t rowIdx,
size_t colIdx,
int8_t* pVal
);
参数
返回值
执行成功返回PdbE_OK, 执行失败返回对应的错误码。
根据行下标和列名获取获取int8_t类型的值。
函数原型
PdbErr_t
pdb_table_get_tinyint_by_colname(
void* pTable,
size_t rowIdx,
const char* pColumnName,
int8_t* pVal
);
参数
返回值
执行成功返回PdbE_OK, 执行失败返回对应的错误码。
根据行下标及列下标获取int16_t类型的值。
函数原型
PdbErr_t
pdb_table_get_smallint_by_colidx(
void* pTable,
size_t rowIdx,
size_t colIdx,
int16_t* pVal
);
参数
返回值
执行成功返回PdbE_OK, 执行失败返回对应的错误码。
根据行下标和列名获取获取int8_t类型的值。
函数原型
PdbErr_t
pdb_table_get_smallint_by_colname(
void* pTable,
size_t rowIdx,
const char* pColumnName,
int16_t* pVal
);
参数
返回值
执行成功返回PdbE_OK, 执行失败返回对应的错误码。
根据行下标及列下标获取int16_t类型的值。
函数原型
PdbErr_t
pdb_table_get_int_by_colidx(
void* pTable,
size_t rowIdx,
size_t colIdx,
int32_t* pVal
);
参数
返回值
执行成功返回PdbE_OK, 执行失败返回对应的错误码。
根据行下标和列名获取获取int32_t类型的值。
函数原型
PdbErr_t
pdb_table_get_int_by_colname(
void* pTable,
size_t rowIdx,
const char* pColumnName,
int32_t* pVal
);
参数
返回值
执行成功返回PdbE_OK, 执行失败返回对应的错误码。
根据行下标及列下标从表中获取bigint类型的值。
函数原型
PdbErr_t
pdb_table_get_bigint_by_colidx(
void* pTable,
size_t rowIdx,
size_t colIdx,
int64_t* pVal
);
参数
返回值
执行成功返回PdbE_OK, 执行失败返回对应的错误码。
根据行下标及列名从表中获取bigint类型的值。
函数原型
PdbErr_t
pdb_table_get_bigint_by_colname(
void* pTable,
size_t rowIdx,
const char* pColumnName,
int64_t* pVal
);
参数
返回值
执行成功返回PdbE_OK, 执行失败返回对应的错误码。
根据行下标及列下标从表中获取DateTime类型的值。
函数原型
PdbErr_t
pdb_table_get_blob_by_colidx(
void* pTable,
size_t rowIdx,
size_t colIdx,
int64_t* pDateTimeVal
);
参数
返回值
执行成功返回PdbE_OK,执行失败返回对应错误码。
根据行下标及列下标从表中获取DateTime类型的值。
函数原型
PdbErr_t
pdb_table_get_blob_by_colname(
void* pTable,
size_t rowIdx,
const char* pColumnName,
int64_t* pDateTimeVal
);
参数
返回值
执行成功返回PdbE_OK,执行失败返回对应错误码。
根据列下标从表中获取double类型的值。
函数原型
PdbErr_t
pdb_table_get_double_by_colidx(
void* pTable,
size_t rowIdx,
size_t colIdx,
double* pVal
);
参数
返回值
执行成功返回PdbE_OK,执行失败返回对应的错误码。
根据列名从表中获取duoble类型的值。
函数原型
PdbErr_t
pdb_table_get_double_by_colname(
void* pTable,
size_t rowIdx,
const char* pColumnName,
double* pVal
);
参数
返回值
执行成功返回PdbE_OK,执行失败返回对应的错误码。
根据行下标及列下标获取string类型值。
函数原型
PdbErr_t
pdb_table_get_string_by_colidx(
void* pTable,
size_t rowIdx,
size_t colIdx,
const char** ppStrVal,
size_t* pStrLen
);
参数
返回值
执行成功返回PdbE_OK,执行失败返回对应的错误码。
根据行下标及列名获取string类型值。
函数原型
PdbErr_t
pdb_table_get_string_by_colname(
void* pTable,
size_t rowIdx,
const char* pColumnName,
const char** ppStrVal,
size_t* pStrLen
);
参数
返回值
执行成功返回PdbE_OK,执行失败返回对应的错误码。
根据行下标及列下标获取blob类型值。
函数原型
PdbErr_t
pdb_table_get_blob_by_colidx(
void* pTable,
size_t rowIdx,
size_t colIdx,
const uint8_t** ppBlobVal,
size_t* pBlobLen
);
参数
返回值
执行成功返回PdbE_OK,执行失败返回对应的错误码。
根据行下标及列名获取blob类型值。
函数原型
PdbErr_t
pdb_table_get_blob_by_colname(
void* pTable,
size_t rowIdx,
const char* pColumnName,
const uint8_t** ppBlobVal,
size_t* pBlobLen
);
参数
返回值
执行成功返回PdbE_OK,执行失败返回对应的错误码。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。