データのクエリ
接続 の手順で接続後、メタデータの反映 内のメソッドの1つを使ってメタデータの一部を反映したら、セッションオブジェクトを使用してデータをクエリできます。
query メソッドを使用したデータのクエリ
マッピングクラスが用意されている場合は、セッションオブジェクトと併用してデータソースをクエリします。エンジンをセッションにバインドしたら、以下のように、マッピングクラスをセッションのクエリメソッドに提供するだけです。
engine = create_engine("cdata_sybaseiq:///?user=myuser;password=mypassword;Server=localhost;Database=Northwind") factory = sessionmaker(bind=engine) session = factory() for instance in session.query([master].[dbo].Products).filter_by(ProductName="Konbu"): print("Id: ", instance.Id) print("Id: ", instance.Id) print("ProductName: ", instance.ProductName) print("---------")
execute メソッドを使用したデータのクエリ
別の方法として、セッションオブジェクトは、適切なテーブルオブジェクトと一緒にexecute() メソッドを使用してクエリを実行することもできます。アクティブなセッションがあると仮定すると、以下は同様に実行可能です。
[master].[dbo].Products_table = [master].[dbo].Products.metadata.tables["[master].[dbo].Products"] for instance in session.execute([master].[dbo].Products_table.select().where([master].[dbo].Products_table.c.ProductName == "Konbu")): print("Id: ", instance.Id) print("FullName: ", instance.Name) print("City: ", instance.BillingCity) print("---------")