1

我想从 feed 表中显示一些东西,比如 temperature_c/f 和 web 上的时间,因为我使用 JavaScript 和 CppCms(C++ 框架到 web 应用程序)

我有一个错误,不知道如何解决。

这是 feed.cpp 类中的一个函数,在那个函数之后我得到了错误

此方法接收城市 ID 和会话

    feed* feed::get_latest(cppdb::session* session, int c_id)
    {
       fprintf (stderr, "\nnum 0\n");
       int id = 0;

id 是 int 和 autoincrement 值,参考MAX(id)这个返回查询特定城市的最新更新

       cppdb::statement stat = (*session)<<"SELECT MAX(id) FROM city WHERE city = ?;" << c_id;
       fprintf (stderr, "\nnum 5\n");
       cppdb::result result = stat.row();
       fprintf (stderr, "\nnum 6\n");
       if (result.empty() || result.is_null(0))
       {
            return NULL;
       }

       id = result.get<int>(0);

       stat = (*session)<<"SELECT * FROM city WHERE id = ?;" << id;

       result = stat.row();

       if (! result.empty())
            return new feed(result, c_id, session);

       return NULL;
 }

有错误

    main in rest api /city/5/feed/
    query string 
    method : GET

    num 0

    num 5 
    2014-08-12 18:28:19; cppcms, error: Caught exception [cppdb::posgresql: query execution failed : ERROR:  input of anonymous composite types is not implemented
    ]
     (http_context.cpp:139)

解释:

我使用此方法 ( fprintf (stderr, "\nnum 6\n");) 来查找错误位置。我们可以看到错误出现在 num 5 到 num 6 之间。

就在这儿:

    fprintf (stderr, "\nnum 5\n");
    cppdb::result result = stat.row();
    fprintf (stderr, "\nnum 6\n");

我该如何解决?

4

0 回答 0