TDengine插入使用taos_stmt apis

问题描述

创建超级表和表后,调用taos_load_table_info加载表信息。然后通过调用taos_stmt_inittaos_stmt_set_tbname来初始化stmt来设置表名。
创建具有以下属性TAOS_BIND 对象:
buffer_type = TSDB_DATA_TYPE_NCHAR
buffer_length = sizeof(str)
buffer = &str
length = sizeof(str)
然后调用taos_stmt_bind_paramtaos_stmt_add_batch,最后用taos_stmt_execute执行。
问题是插入失败,因为我检查了 shell 并使用 select * 查找数据,但它只显示一个空列。

解决方法

强烈建议你先尝试插入一个简单的nchar类型的数据来检查是否是taos_stmt API的问题。如果插入成功,那么您还可以检查插入的 nchar 字符串是否与 str 变量的长度相同。有时,buffer_length 大于或等于 length。如果您的 nchar 数据的实际大小小于 length 中的 TAOS_BIND 值,那么 tdengine 仍会使用其他额外的空值来分析绑定值,并且将无法插入。