"""Klasa pomocnicza obiektow subarea
""" 

class DatabaseHelper():
    """Klasa pomocnicza obiektow swdl
    """
    
    def __init__(self,database):
        self.__database=database
        
    
    def open(self):
        """Otwiera połączenie do bazy
        """
        try:
            self.__database.polaczOdbc()
        except Exception as e:
             self.__database.zamknijPolaczenie()
             raise e
         
    def close(self):
        """Zamyka połączenie do bazy
        """
        try:
            self.__database.zamknijPolaczenie()
        except Exception as e:
            raise e
                
    
    def get_data(self,sql):   
        """Zwraca dane zapytania sql
        :param sql; zapytanie
        """
        try:
            #self.__database.polaczOdbc()
            dane=self.__database.wykonajZapytanie(sql)
            return dane
        except Exception as e:
            raise e
#         finally:
#             self.__database.zamknijPolaczenie()
    
    def run_query_many(self,query,params):
        """Wykonuje zapytanie dla wielu danych i jednego wzorca insert, update
        :param query; zapytanie
        :param params; parametry
        """
        try:
            #self.__database.polaczOdbc()
            self.__database.wykonajWieleZapytan(zapytanie=query,parametry=params)
        except Exception as e:
            raise e
#         finally:
#             self.__database.zamknijPolaczenie()
    
    def run_queries(self,queries):
        """Wykonuje zapytania na bazie bez zwracania wyników
        :param queries; lista zapytań
        """
        try:
            #self.__database.polaczOdbc()
            for query in queries:
                self.__database.wykonajZapytanieModyfikacja(query)
                
        except Exception as e:
            raise e
#         finally:
#             self.__database.zamknijPolaczenie()
            
    def insert_data_identity(self,query):
        """Wykonuje zapytanie i zwraca wartoś klucza dla ostatnio wstawionego wiersza. Dla wstawienia wiersza w tabeli F_ARODES jest to arodes_int_num
        :param query; Zapytanie
        """
        try:
            #self.__database.polaczOdbc()   
            self.__database.wykonajZapytanieModyfikacja(query)
            return self.__database.wykonajZapytanie("Select @@Identity")[0][0]
        except Exception as e:
            raise e
#         finally:
#             self.__database.zamknijPolaczenie()
    
        
 
        