2012-02-25 10 views
1

これは、Convert sqlalchemy core statements to raw SQL without a connection?のフォローアップです。私は、名前付き引数で挿入を使用したいが、SQLAでそれらを実行することはしない。名前付きパラメーターを使用したsqlalchemyステートメントのコンパイル

table = Table("table", meta_data, 
      Column("id", Integer, auto_increment=True, primary_key=1), 
      Column("name", String), 
      Column("full_name", String)) 
params = {"full_name": "some_name", "name": "some_other_name"} 
stmt = sqlalchemy.sql.expression.insert(table).values(params) 
c_stmt = stmt.compile(dialect=dialect) 

私は後でDBAPI接続を介してこの文を実行します:

は、私は、次のような定義されたINSERT文を持っています。どのように生成されたSQL文字列と私のパラメータのセットの間の位置が一貫していることを確認できますか?

答えて

0

ほとんどのSQLエンジン(すべて?)は、名前付きバインドパラメータと位置パラメータをサポートしています.SAはこれを行うためのインターフェイス(bindparam、十分に面白い)を提供しています。 SA Docsには、おそらくあなたのニーズに役立つ例のセクションがあります。もちろん、この例ではSAでクエリを実行していると仮定しているため、ユースケースについて解釈する必要があります。

関連する問題