当我第一次开始在我现在工作的公司工作时,我创建了一个运行批量jasper-reports的java应用程序。为了确定在报告集中为每个报告使用哪些参数,我运行sql查询(在sqlserver上)。我编写了应用程序来获取一个xml文件,其中包含要在集合中生成的每个报告的一组参数。所以,我的过程实际上已经变成了三个步骤:
你可以想象,我想做的是在python中完成这些步骤,但我不太清楚如何开始。我知道如何在Python中运行SQL查询。我看到很多关于如何使用Python编写自己的xml文档的文档。我甚至在python中看到了xsl转换的文档。
最大的问题是如何通过python以XML格式获取sql查询的结果。任何和所有指针都非常有价值。 谢谢, _Ramy
答案 0 :(得分:0)
我认为执行使用'FOR XML AUTO'的sql查询会给你一个记录集,其中包含一条记录(xml)。然后,您将检索第一条记录并从那里继续您的应用程序。
使用pyodbc的示例:
cursor.execute("select user_name from users where user_id=? for xml auto", userid)
xml = cursor.fetchone()
if xml:
# do your xsl transformation and other processing here...
修改强>
我在测试中选择了很多字段,并且(我认为)设法超出行对象的某个缓冲区大小,因此它会拆分记录。
根据我的测试,我需要的代码是:
cursor.execute("select user_name from users where user_id=? for xml auto", userid)
rows = cursor.fetchall()
xml = ''.join(row[0] for row in rows)