diff --git a/Lab06/application.py b/Lab06/application.py index b9d7891..5fe51ce 100644 --- a/Lab06/application.py +++ b/Lab06/application.py @@ -266,7 +266,7 @@ def updatePriceForSquareMeter(newPrice, sqrL, sqrH, connection, cursor): from re_obj ''' ) - connection.commit() + #connection.commit() # Called a stored procedure cursor.execute\ ( diff --git a/Lab07/LR7_DB.pdf b/Lab07/LR7_DB.pdf new file mode 100644 index 0000000..c33b845 Binary files /dev/null and b/Lab07/LR7_DB.pdf differ diff --git a/Lab07/LinqToObj.py b/Lab07/LinqToObj.py new file mode 100644 index 0000000..6d5ae99 --- /dev/null +++ b/Lab07/LinqToObj.py @@ -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) + + + + diff --git a/Lab07/LinqToSQL.py b/Lab07/LinqToSQL.py new file mode 100644 index 0000000..a47a215 --- /dev/null +++ b/Lab07/LinqToSQL.py @@ -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)