Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Lab06/application.py
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@ def updatePriceForSquareMeter(newPrice, sqrL, sqrH, connection, cursor):
from re_obj
'''
)
connection.commit()
#connection.commit()
# Called a stored procedure
cursor.execute\
(
Expand Down
Binary file added Lab07/LR7_DB.pdf
Binary file not shown.
35 changes: 35 additions & 0 deletions Lab07/LinqToObj.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String
from py_linq import Enumerable

engine = create_engine('postgresql+psycopg2://postgres:1&0O#_)"d@localhost/Real_Estate', executemany_mode='batch')

connection = engine.connect()
result = connection.execute("select * from re_owner")

print(result)
collection = Enumerable()

class Owners:
def __init__(self, ensurance_num, owner_name, age, gender):
self.ensurance_num = ensurance_num
self.owner_name = owner_name
self.age = age
self.gender = gender
def __repr__(self):
return 'Owner ensurance: {}, name: {}, age: {}, gender {}\n'.format(self.ensurance_num, self.owner_name, self.age, self.gender)

for row in result:
owner = Owners(row[0], row[1], row[2], row[3])
collection.append(owner)

print(collection[0].owner_name)

men_from_twenty_to_fourty = collection.where(lambda x: x.age < 20 and x.gender == "муж.").select(lambda y: (y.owner_name, y.age, y.gender))
print(men_from_twenty_to_fourty)

oldest_woman_sorted_by_name_with_age_stats = collection.where(lambda x: x.gender == "жен.").order_by_descending(lambda x: (x.age, x.owner_name), ).select(lambda y: (y.owner_name, y.age, y.gender)).first()
print(oldest_woman_sorted_by_name_with_age_stats)




43 changes: 43 additions & 0 deletions Lab07/LinqToSQL.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String, BigInteger, Date, ForeignKey
from sqlalchemy.orm import relationship
engine = create_engine('postgresql+psycopg2://postgres:1&0O#_)"d@localhost/Real_Estate',
executemany_mode='batch')

meta = MetaData()

reobj_table = Table\
(
're_obj',
meta,
Column('cad_num', BigInteger, primary_key=True),
Column('obj_address', String),
Column('cad_value', BigInteger),
Column('approval_date', Date),
Column('obj_square', Integer)
)

reownership_table = Table\
(
're_ownership',
meta,
Column('id', BigInteger, primary_key=True),
Column('cad_num', ForeignKey("re_obj.cad_num")),
Column('ensurance_num', ForeignKey("re_owner.cad_num")),
Column('ownership_type_id', ForeignKey("re_ownership_type.ownership_type_id"))
)

connection = engine.connect()
reobj = connection.execute(reobj_table.select())
reownership = connection.execute(reownership_table.select())

# obj_ownership = re_obj.outer_join

q = connection.execute(reownership_table.outerjoin(reobj_table).select())
print(q.fetchone())

from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind = engine)
session = Session()

res = session.execute('call table_size()')
print(res)