如何从 monetdbe_query 获取详细的错误信息

问题描述

查看 GitHub 存储库中 monetdbe_query 的 C 示例:https://github.com/MonetDBSolutions/monetdbe-examples

规定的运行查询方式是在捕获 Null 返回值的 IF 语句中运行 sql 查询,如下所示:

if (monetdbe_query(db,"SELECT * FROM mystrings",&result,NULL) != NULL) {
        fprintf(stderr,"Failed to run select query\n");
        goto cleanup;
    }

是否可以获得有关 sql 语句失败原因的任何详细信息?

解决方法

如果出现问题,许多 monetdbe_ 函数会返回错误消息,否则 NULL。所以,只要抓住返回值。请参阅 monetdbe-examples 中的示例 copy_into.c

if((err=monetdbe_query(db,sql,NULL,NULL)) != NULL) {
    printf("%s\r\n",err);
    return -1;
}

grep for err 在示例中了解更多信息。