使用ODBC将任何结果集格式化为JSON

时间:2011-08-20 05:46:26

标签: c odbc

我正在开发一个客户端接口,可以通过在输入字段和服务器端(用C编码并使用sql.h)传递所需的查询来连接到任何数据库,解析此查询并返回JSON格式的内容。我能够通过使用select * from tablename query轻松完成此任务,因为我能够使用count(*)查询获取行数,并使用for循环将我的JSON打印到缓冲区中。如何为任何其他查询完成相同的操作?

我在某处读到了行式绑定可能会有所帮助,但是将结果集解析为json格式背后的逻辑是什么? (假设我需要以行方式格式化数据。例如:{"Records" : [["col heading 1", "col heading 2", "col heading 3"], ["row content 1", "row content 2", "row content 3"]...]}

1 个答案:

答案 0 :(得分:2)

ODBC仅提供了一种方法(SQLRowCount)来查找UPDATE / DELETE / INSERT语句的受影响行数 - 请参阅http://msdn.microsoft.com/en-us/library/ms711835%28v=VS.85%29.aspx。 ..

如果你想找出SELECT的行数,你可以第二次执行查询SELECT COUNT(*)或者只是循环结果集并计算ODBC提供的行数。

http://social.msdn.microsoft.com/Forums/en/vcgeneral/thread/6fe5403d-900c-4b07-9d00-1f42731b5602
How to Get The Count or The Number Of Rows In A Result Set In PHP using ODBC Connection?

注意:虽然第二个链接提到了PHP,但答案与语言无关,因为行为的原因在于ODBC标准和使用过的ODBC驱动程序。