簡體   English   中英

打印 SQLObject 生成的 SQL

[英]Print SQL generated by SQLObject

from sqlobject import *

class Data(SQLObject):
    ts = TimeCol()
    val = FloatCol()

Data.select().count()

失敗:

AttributeError: No connection has been defined for this thread or process

如何在不聲明連接的情況下獲取將生成的 SQL?

這是不可能的,原因有二。 第一, .count()不僅生成一個查詢,它還執行它,所以它不僅需要一個連接,還需要一個數據庫和一個填充的表。 第二,可以為不同的后端生成不同的查詢(尤其是在引用字符串的區域),因此需要連接才能將查詢 object 呈現為字符串。

要使用累加器 function 生成查詢字符串,您需要重復生成查詢的代碼 所以你的問題的完整解決方案是

#! /usr/bin/env python

from sqlobject import *

__connection__ = "sqlite:/:memory:?debug=1"

class Data(SQLObject):
    ts = TimeCol()
    val = FloatCol()

print(Data.select().queryForSelect().newItems("COUNT(*)"))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM