functions.query_executor
1from dictionary.db_config import db_config 2from dictionary.vars import operational_system 3import mysql.connector 4import streamlit as st 5 6 7class QueryExecutor: 8 """ 9 Classe com métodos para inserção, atualização e tratamento de dados obtidos do banco de dados. 10 """ 11 12 def insert_query(self, query: str, values: tuple, success_message: str, error_message: str): 13 """ 14 Realiza a inserção da consulta no banco de dados. 15 16 Parameters 17 ---------- 18 query : str 19 A consulta a ser inserida. 20 values : tuple 21 A tupla com os valores a serem inseridos. 22 success_message : str 23 A mensagem a ser exibida caso a consulta seja inserida com sucesso. 24 error_message : str 25 A mensagem a ser exibida caso a consulta apresente erros ao ser inserida. 26 """ 27 try: 28 connection = mysql.connector.connect(**db_config) 29 cursor = connection.cursor() 30 cursor.execute(query, values) 31 connection.commit() 32 cursor.close() 33 st.toast(":white_check_mark: {}".format(success_message)) 34 except mysql.connector.Error as error: 35 if error.errno == 1062 or error.errno == 23000: 36 st.error("Já há um registro com estes dados.") 37 else: 38 st.toast(":warning: {} {}".format(error_message, error)) 39 st.error(error) 40 finally: 41 if connection.is_connected(): 42 connection.close() 43 st.toast(body="Inserção finalizada.") 44 45 def simple_consult_query(self, query: str, params: tuple): 46 """ 47 Realiza uma consulta simples no banco de dados, de acordo com os parametros informados. 48 49 Parameters 50 ---------- 51 query : str 52 A consulta a ser inserida. 53 params : tuple 54 A tupla com os valores a serem consultados. 55 """ 56 try: 57 connection = mysql.connector.connect(**db_config) 58 cursor = connection.cursor() 59 cursor.execute(query, params) 60 simple_value = cursor.fetchone() 61 cursor.close() 62 if simple_value is not None: 63 return simple_value 64 else: 65 return 0 66 except mysql.connector.Error as error: 67 st.toast(":warning: Erro ao consultar dado: {}".format(error)) 68 st.error(error) 69 finally: 70 if connection.is_connected(): 71 connection.close() 72 73 def simple_consult_brute_query(self, query: str): 74 """ 75 Realiza uma consulta simples no banco de dados. 76 77 Parameters 78 ---------- 79 query : str 80 A consulta a ser inserida. 81 """ 82 try: 83 connection = mysql.connector.connect(**db_config) 84 cursor = connection.cursor() 85 cursor.execute(query) 86 simple_value = cursor.fetchone() 87 cursor.close() 88 if simple_value is not None: 89 return simple_value 90 else: 91 return 0 92 except mysql.connector.Error as error: 93 if operational_system == "posix": 94 st.toast(":warning: Erro ao consultar dado: {}".format(error)) 95 st.error(error) 96 elif operational_system == "nt": 97 print("Erro ao consultar dado: {}".format(error)) 98 finally: 99 if connection.is_connected(): 100 connection.close() 101 102 def complex_compund_query(self, query: str, list_quantity: int, params: tuple): 103 """ 104 Executa uma consulta composta no banco de dados com base nos parâmetros fornecidos. 105 106 Parameters 107 ---------- 108 query : str 109 A consulta SQL a ser executada. 110 list_quantity : int 111 O número de listas que deverão ser criadas para armazenar os resultados. 112 params : tuple 113 Uma tupla contendo os valores que serão utilizados como parâmetros na consulta. 114 115 Returns 116 ------- 117 list 118 Uma lista contendo múltiplas listas, cada uma correspondendo aos valores retornados pela consulta. 119 """ 120 try: 121 connection = mysql.connector.connect(**db_config) 122 cursor = connection.cursor() 123 cursor.execute(query, params) 124 125 lists = [[] for _ in range(list_quantity)] 126 127 for row in cursor.fetchall(): 128 for i in range(list_quantity): 129 lists[i].append(row[i]) 130 131 return lists 132 133 except mysql.connector.Error as err: 134 st.error("Erro ao consultar dados compostos: {}".format(err)) 135 return None 136 137 finally: 138 if connection.is_connected(): 139 connection.close() 140 141 def complex_consult_query(self, query: str, params: tuple): 142 """ 143 Realiza uma consulta complexa no banco de dados, de acordo com os parametros informados. 144 145 Parameters 146 ---------- 147 query : str 148 A consulta a ser inserida. 149 params : tuple 150 A tupla com os valores a serem consultados. 151 152 Returns 153 ------- 154 complex_value : list 155 A lista com os valores da consulta. 156 """ 157 try: 158 connection = mysql.connector.connect(**db_config) 159 cursor = connection.cursor() 160 cursor.execute(query, params) 161 complex_value = cursor.fetchall() 162 cursor.close() 163 if complex_value is not None: 164 return complex_value 165 else: 166 return [0] 167 except mysql.connector.Error as error: 168 st.toast(":warning: Erro ao consultar dados: {}".format(error)) 169 st.error(error) 170 finally: 171 if connection.is_connected(): 172 connection.close() 173 174 def complex_consult_brute_query(self, query: str): 175 """ 176 Realiza uma consulta complexa no banco de dados. 177 178 Parameters 179 ---------- 180 query : str 181 A consulta a ser inserida. 182 183 Returns 184 ------- 185 complex_value : list 186 A lista com os valores da consulta. 187 """ 188 try: 189 connection = mysql.connector.connect(**db_config) 190 cursor = connection.cursor() 191 cursor.execute(query) 192 complex_value = cursor.fetchall() 193 cursor.close() 194 if complex_value is not None: 195 return complex_value 196 else: 197 return [0] 198 except mysql.connector.Error as error: 199 st.toast(":warning: Erro ao consultar dados: {}".format(error)) 200 st.error(error) 201 finally: 202 if connection.is_connected(): 203 connection.close() 204 205 def treat_simple_result(self, value_to_treat: str, values_to_remove: list): 206 """ 207 Realiza o tratamento de uma cadeia de caracteres, de acordo com os parametros informados. 208 209 Parameters 210 ---------- 211 value_to_treat : str 212 O valor a ser tratado. 213 values_to_remove : list 214 Os valores a serem removidos. 215 216 Returns 217 ------- 218 final_result : str 219 O valor tratado. 220 """ 221 final_result = str(value_to_treat) 222 223 for i in range(0, len(values_to_remove)): 224 final_result = final_result.replace( 225 "{}".format(values_to_remove[i]), "") 226 227 return final_result 228 229 def treat_numerous_simple_result(self, values_to_treat: list, values_to_remove: list): 230 """ 231 Realiza o tratamento de varias cadeias de caracteres, de acordo com os parametros informados. 232 233 Parameters 234 ---------- 235 value_to_treat : list 236 Os valores a serem tratados. 237 values_to_remove : list 238 Os valores a serem removidos. 239 240 Returns 241 ------- 242 final_list : list 243 Os valores tratados. 244 """ 245 aux_str = "" 246 aux_list = [] 247 248 for i in range(0, len(values_to_treat)): 249 aux_str = str(values_to_treat[i]) 250 aux_list.append(aux_str) 251 252 final_str = "" 253 final_list = [] 254 255 for i in range(0, len(aux_list)): 256 final_str = str(aux_list[i]) 257 for i in range(0, len(values_to_remove)): 258 final_str = final_str.replace( 259 "{}".format(values_to_remove[i]), "") 260 final_list.append(final_str) 261 262 return final_list 263 264 def treat_complex_result(self, values_to_treat, values_to_remove: list): 265 """ 266 Realiza o tratamento de uma cadeia de caracteres, de acordo com os parametros informados. 267 268 Parameters 269 ---------- 270 value_to_treat : str 271 O valor a ser tratado. 272 values_to_remove : list 273 Os valores a serem removidos. 274 275 Returns 276 ------- 277 final_result : str 278 O valor tratado. 279 """ 280 aux_str = "" 281 aux_list = [] 282 283 final_str = "" 284 final_list = [] 285 286 for i in range(0, len(values_to_treat)): 287 aux_str = str(values_to_treat[i]) 288 aux_list = aux_str.split(", ") 289 for i in range(0, len(aux_list)): 290 final_str = str(aux_list[i]) 291 for i in range(0, len(values_to_remove)): 292 final_str = final_str.replace( 293 "{}".format(values_to_remove[i]), "") 294 final_list.append(final_str) 295 296 return final_list 297 298 def check_if_value_exists(self, query): 299 """ 300 Verifica se o valor da consulta existe no banco de dados. 301 302 Parameters 303 ---------- 304 query : str 305 A consulta a ser verificada. 306 307 Returns 308 ------- 309 bool 310 Retorna se o dado consultado existe ou não no banco de dados. 311 """ 312 connection = mysql.connector.connect(**db_config) 313 cursor = connection.cursor() 314 cursor.execute(query) 315 return cursor.fetchone() is not None 316 317 def update_table_registers(self, table: str, table_field: str, id_list: list): 318 """ 319 Realiza a atualização de registros no banco de dados, de acordo com os parametros informados. 320 321 Parameters 322 ---------- 323 table : str 324 A tabela que será atualizada. 325 table_field: str 326 O campo da tabela que será atualizado. 327 id_list : list 328 Os id's de identificação dos registros que serão atualizados. 329 """ 330 for i in range(0, len(id_list)): 331 332 update_id_query = """UPDATE {} SET pago = 'S' WHERE id_{} = {}""".format( 333 table, table_field, id_list[i]) 334 335 try: 336 connection = mysql.connector.connect(**db_config) 337 cursor = connection.cursor() 338 cursor.execute(update_id_query) 339 connection.commit() 340 cursor.close() 341 342 except mysql.connector.Error as err: 343 st.toast(f"Erro ao pagar despesas do cartão: {err}") 344 finally: 345 if connection.is_connected(): 346 connection.close() 347 348 def update_table_unique_register(self, query: str, success_message: str, error_message: str): 349 """ 350 Realiza a atualização de um registro no banco de dados. 351 352 Parameters 353 ---------- 354 query : str 355 A consulta de atualização. 356 success_message : str 357 A mensagem que será exibida caso a atualização seja concluída. 358 error_message : str 359 A mensagem que será exibida caso ocorram erros durante a atualização. 360 """ 361 try: 362 connection = mysql.connector.connect(**db_config) 363 cursor = connection.cursor() 364 cursor.execute(query) 365 connection.commit() 366 cursor.close() 367 368 st.toast(":white_check_mark: {}".format(success_message)) 369 except mysql.connector.Error as error: 370 st.toast(":warning: {} {}".format(error_message, error)) 371 finally: 372 if connection.is_connected(): 373 connection.close()
8class QueryExecutor: 9 """ 10 Classe com métodos para inserção, atualização e tratamento de dados obtidos do banco de dados. 11 """ 12 13 def insert_query(self, query: str, values: tuple, success_message: str, error_message: str): 14 """ 15 Realiza a inserção da consulta no banco de dados. 16 17 Parameters 18 ---------- 19 query : str 20 A consulta a ser inserida. 21 values : tuple 22 A tupla com os valores a serem inseridos. 23 success_message : str 24 A mensagem a ser exibida caso a consulta seja inserida com sucesso. 25 error_message : str 26 A mensagem a ser exibida caso a consulta apresente erros ao ser inserida. 27 """ 28 try: 29 connection = mysql.connector.connect(**db_config) 30 cursor = connection.cursor() 31 cursor.execute(query, values) 32 connection.commit() 33 cursor.close() 34 st.toast(":white_check_mark: {}".format(success_message)) 35 except mysql.connector.Error as error: 36 if error.errno == 1062 or error.errno == 23000: 37 st.error("Já há um registro com estes dados.") 38 else: 39 st.toast(":warning: {} {}".format(error_message, error)) 40 st.error(error) 41 finally: 42 if connection.is_connected(): 43 connection.close() 44 st.toast(body="Inserção finalizada.") 45 46 def simple_consult_query(self, query: str, params: tuple): 47 """ 48 Realiza uma consulta simples no banco de dados, de acordo com os parametros informados. 49 50 Parameters 51 ---------- 52 query : str 53 A consulta a ser inserida. 54 params : tuple 55 A tupla com os valores a serem consultados. 56 """ 57 try: 58 connection = mysql.connector.connect(**db_config) 59 cursor = connection.cursor() 60 cursor.execute(query, params) 61 simple_value = cursor.fetchone() 62 cursor.close() 63 if simple_value is not None: 64 return simple_value 65 else: 66 return 0 67 except mysql.connector.Error as error: 68 st.toast(":warning: Erro ao consultar dado: {}".format(error)) 69 st.error(error) 70 finally: 71 if connection.is_connected(): 72 connection.close() 73 74 def simple_consult_brute_query(self, query: str): 75 """ 76 Realiza uma consulta simples no banco de dados. 77 78 Parameters 79 ---------- 80 query : str 81 A consulta a ser inserida. 82 """ 83 try: 84 connection = mysql.connector.connect(**db_config) 85 cursor = connection.cursor() 86 cursor.execute(query) 87 simple_value = cursor.fetchone() 88 cursor.close() 89 if simple_value is not None: 90 return simple_value 91 else: 92 return 0 93 except mysql.connector.Error as error: 94 if operational_system == "posix": 95 st.toast(":warning: Erro ao consultar dado: {}".format(error)) 96 st.error(error) 97 elif operational_system == "nt": 98 print("Erro ao consultar dado: {}".format(error)) 99 finally: 100 if connection.is_connected(): 101 connection.close() 102 103 def complex_compund_query(self, query: str, list_quantity: int, params: tuple): 104 """ 105 Executa uma consulta composta no banco de dados com base nos parâmetros fornecidos. 106 107 Parameters 108 ---------- 109 query : str 110 A consulta SQL a ser executada. 111 list_quantity : int 112 O número de listas que deverão ser criadas para armazenar os resultados. 113 params : tuple 114 Uma tupla contendo os valores que serão utilizados como parâmetros na consulta. 115 116 Returns 117 ------- 118 list 119 Uma lista contendo múltiplas listas, cada uma correspondendo aos valores retornados pela consulta. 120 """ 121 try: 122 connection = mysql.connector.connect(**db_config) 123 cursor = connection.cursor() 124 cursor.execute(query, params) 125 126 lists = [[] for _ in range(list_quantity)] 127 128 for row in cursor.fetchall(): 129 for i in range(list_quantity): 130 lists[i].append(row[i]) 131 132 return lists 133 134 except mysql.connector.Error as err: 135 st.error("Erro ao consultar dados compostos: {}".format(err)) 136 return None 137 138 finally: 139 if connection.is_connected(): 140 connection.close() 141 142 def complex_consult_query(self, query: str, params: tuple): 143 """ 144 Realiza uma consulta complexa no banco de dados, de acordo com os parametros informados. 145 146 Parameters 147 ---------- 148 query : str 149 A consulta a ser inserida. 150 params : tuple 151 A tupla com os valores a serem consultados. 152 153 Returns 154 ------- 155 complex_value : list 156 A lista com os valores da consulta. 157 """ 158 try: 159 connection = mysql.connector.connect(**db_config) 160 cursor = connection.cursor() 161 cursor.execute(query, params) 162 complex_value = cursor.fetchall() 163 cursor.close() 164 if complex_value is not None: 165 return complex_value 166 else: 167 return [0] 168 except mysql.connector.Error as error: 169 st.toast(":warning: Erro ao consultar dados: {}".format(error)) 170 st.error(error) 171 finally: 172 if connection.is_connected(): 173 connection.close() 174 175 def complex_consult_brute_query(self, query: str): 176 """ 177 Realiza uma consulta complexa no banco de dados. 178 179 Parameters 180 ---------- 181 query : str 182 A consulta a ser inserida. 183 184 Returns 185 ------- 186 complex_value : list 187 A lista com os valores da consulta. 188 """ 189 try: 190 connection = mysql.connector.connect(**db_config) 191 cursor = connection.cursor() 192 cursor.execute(query) 193 complex_value = cursor.fetchall() 194 cursor.close() 195 if complex_value is not None: 196 return complex_value 197 else: 198 return [0] 199 except mysql.connector.Error as error: 200 st.toast(":warning: Erro ao consultar dados: {}".format(error)) 201 st.error(error) 202 finally: 203 if connection.is_connected(): 204 connection.close() 205 206 def treat_simple_result(self, value_to_treat: str, values_to_remove: list): 207 """ 208 Realiza o tratamento de uma cadeia de caracteres, de acordo com os parametros informados. 209 210 Parameters 211 ---------- 212 value_to_treat : str 213 O valor a ser tratado. 214 values_to_remove : list 215 Os valores a serem removidos. 216 217 Returns 218 ------- 219 final_result : str 220 O valor tratado. 221 """ 222 final_result = str(value_to_treat) 223 224 for i in range(0, len(values_to_remove)): 225 final_result = final_result.replace( 226 "{}".format(values_to_remove[i]), "") 227 228 return final_result 229 230 def treat_numerous_simple_result(self, values_to_treat: list, values_to_remove: list): 231 """ 232 Realiza o tratamento de varias cadeias de caracteres, de acordo com os parametros informados. 233 234 Parameters 235 ---------- 236 value_to_treat : list 237 Os valores a serem tratados. 238 values_to_remove : list 239 Os valores a serem removidos. 240 241 Returns 242 ------- 243 final_list : list 244 Os valores tratados. 245 """ 246 aux_str = "" 247 aux_list = [] 248 249 for i in range(0, len(values_to_treat)): 250 aux_str = str(values_to_treat[i]) 251 aux_list.append(aux_str) 252 253 final_str = "" 254 final_list = [] 255 256 for i in range(0, len(aux_list)): 257 final_str = str(aux_list[i]) 258 for i in range(0, len(values_to_remove)): 259 final_str = final_str.replace( 260 "{}".format(values_to_remove[i]), "") 261 final_list.append(final_str) 262 263 return final_list 264 265 def treat_complex_result(self, values_to_treat, values_to_remove: list): 266 """ 267 Realiza o tratamento de uma cadeia de caracteres, de acordo com os parametros informados. 268 269 Parameters 270 ---------- 271 value_to_treat : str 272 O valor a ser tratado. 273 values_to_remove : list 274 Os valores a serem removidos. 275 276 Returns 277 ------- 278 final_result : str 279 O valor tratado. 280 """ 281 aux_str = "" 282 aux_list = [] 283 284 final_str = "" 285 final_list = [] 286 287 for i in range(0, len(values_to_treat)): 288 aux_str = str(values_to_treat[i]) 289 aux_list = aux_str.split(", ") 290 for i in range(0, len(aux_list)): 291 final_str = str(aux_list[i]) 292 for i in range(0, len(values_to_remove)): 293 final_str = final_str.replace( 294 "{}".format(values_to_remove[i]), "") 295 final_list.append(final_str) 296 297 return final_list 298 299 def check_if_value_exists(self, query): 300 """ 301 Verifica se o valor da consulta existe no banco de dados. 302 303 Parameters 304 ---------- 305 query : str 306 A consulta a ser verificada. 307 308 Returns 309 ------- 310 bool 311 Retorna se o dado consultado existe ou não no banco de dados. 312 """ 313 connection = mysql.connector.connect(**db_config) 314 cursor = connection.cursor() 315 cursor.execute(query) 316 return cursor.fetchone() is not None 317 318 def update_table_registers(self, table: str, table_field: str, id_list: list): 319 """ 320 Realiza a atualização de registros no banco de dados, de acordo com os parametros informados. 321 322 Parameters 323 ---------- 324 table : str 325 A tabela que será atualizada. 326 table_field: str 327 O campo da tabela que será atualizado. 328 id_list : list 329 Os id's de identificação dos registros que serão atualizados. 330 """ 331 for i in range(0, len(id_list)): 332 333 update_id_query = """UPDATE {} SET pago = 'S' WHERE id_{} = {}""".format( 334 table, table_field, id_list[i]) 335 336 try: 337 connection = mysql.connector.connect(**db_config) 338 cursor = connection.cursor() 339 cursor.execute(update_id_query) 340 connection.commit() 341 cursor.close() 342 343 except mysql.connector.Error as err: 344 st.toast(f"Erro ao pagar despesas do cartão: {err}") 345 finally: 346 if connection.is_connected(): 347 connection.close() 348 349 def update_table_unique_register(self, query: str, success_message: str, error_message: str): 350 """ 351 Realiza a atualização de um registro no banco de dados. 352 353 Parameters 354 ---------- 355 query : str 356 A consulta de atualização. 357 success_message : str 358 A mensagem que será exibida caso a atualização seja concluída. 359 error_message : str 360 A mensagem que será exibida caso ocorram erros durante a atualização. 361 """ 362 try: 363 connection = mysql.connector.connect(**db_config) 364 cursor = connection.cursor() 365 cursor.execute(query) 366 connection.commit() 367 cursor.close() 368 369 st.toast(":white_check_mark: {}".format(success_message)) 370 except mysql.connector.Error as error: 371 st.toast(":warning: {} {}".format(error_message, error)) 372 finally: 373 if connection.is_connected(): 374 connection.close()
Classe com métodos para inserção, atualização e tratamento de dados obtidos do banco de dados.
13 def insert_query(self, query: str, values: tuple, success_message: str, error_message: str): 14 """ 15 Realiza a inserção da consulta no banco de dados. 16 17 Parameters 18 ---------- 19 query : str 20 A consulta a ser inserida. 21 values : tuple 22 A tupla com os valores a serem inseridos. 23 success_message : str 24 A mensagem a ser exibida caso a consulta seja inserida com sucesso. 25 error_message : str 26 A mensagem a ser exibida caso a consulta apresente erros ao ser inserida. 27 """ 28 try: 29 connection = mysql.connector.connect(**db_config) 30 cursor = connection.cursor() 31 cursor.execute(query, values) 32 connection.commit() 33 cursor.close() 34 st.toast(":white_check_mark: {}".format(success_message)) 35 except mysql.connector.Error as error: 36 if error.errno == 1062 or error.errno == 23000: 37 st.error("Já há um registro com estes dados.") 38 else: 39 st.toast(":warning: {} {}".format(error_message, error)) 40 st.error(error) 41 finally: 42 if connection.is_connected(): 43 connection.close() 44 st.toast(body="Inserção finalizada.")
Realiza a inserção da consulta no banco de dados.
Parameters
- query (str): A consulta a ser inserida.
- values (tuple): A tupla com os valores a serem inseridos.
- success_message (str): A mensagem a ser exibida caso a consulta seja inserida com sucesso.
- error_message (str): A mensagem a ser exibida caso a consulta apresente erros ao ser inserida.
46 def simple_consult_query(self, query: str, params: tuple): 47 """ 48 Realiza uma consulta simples no banco de dados, de acordo com os parametros informados. 49 50 Parameters 51 ---------- 52 query : str 53 A consulta a ser inserida. 54 params : tuple 55 A tupla com os valores a serem consultados. 56 """ 57 try: 58 connection = mysql.connector.connect(**db_config) 59 cursor = connection.cursor() 60 cursor.execute(query, params) 61 simple_value = cursor.fetchone() 62 cursor.close() 63 if simple_value is not None: 64 return simple_value 65 else: 66 return 0 67 except mysql.connector.Error as error: 68 st.toast(":warning: Erro ao consultar dado: {}".format(error)) 69 st.error(error) 70 finally: 71 if connection.is_connected(): 72 connection.close()
Realiza uma consulta simples no banco de dados, de acordo com os parametros informados.
Parameters
- query (str): A consulta a ser inserida.
- params (tuple): A tupla com os valores a serem consultados.
74 def simple_consult_brute_query(self, query: str): 75 """ 76 Realiza uma consulta simples no banco de dados. 77 78 Parameters 79 ---------- 80 query : str 81 A consulta a ser inserida. 82 """ 83 try: 84 connection = mysql.connector.connect(**db_config) 85 cursor = connection.cursor() 86 cursor.execute(query) 87 simple_value = cursor.fetchone() 88 cursor.close() 89 if simple_value is not None: 90 return simple_value 91 else: 92 return 0 93 except mysql.connector.Error as error: 94 if operational_system == "posix": 95 st.toast(":warning: Erro ao consultar dado: {}".format(error)) 96 st.error(error) 97 elif operational_system == "nt": 98 print("Erro ao consultar dado: {}".format(error)) 99 finally: 100 if connection.is_connected(): 101 connection.close()
Realiza uma consulta simples no banco de dados.
Parameters
- query (str): A consulta a ser inserida.
103 def complex_compund_query(self, query: str, list_quantity: int, params: tuple): 104 """ 105 Executa uma consulta composta no banco de dados com base nos parâmetros fornecidos. 106 107 Parameters 108 ---------- 109 query : str 110 A consulta SQL a ser executada. 111 list_quantity : int 112 O número de listas que deverão ser criadas para armazenar os resultados. 113 params : tuple 114 Uma tupla contendo os valores que serão utilizados como parâmetros na consulta. 115 116 Returns 117 ------- 118 list 119 Uma lista contendo múltiplas listas, cada uma correspondendo aos valores retornados pela consulta. 120 """ 121 try: 122 connection = mysql.connector.connect(**db_config) 123 cursor = connection.cursor() 124 cursor.execute(query, params) 125 126 lists = [[] for _ in range(list_quantity)] 127 128 for row in cursor.fetchall(): 129 for i in range(list_quantity): 130 lists[i].append(row[i]) 131 132 return lists 133 134 except mysql.connector.Error as err: 135 st.error("Erro ao consultar dados compostos: {}".format(err)) 136 return None 137 138 finally: 139 if connection.is_connected(): 140 connection.close()
Executa uma consulta composta no banco de dados com base nos parâmetros fornecidos.
Parameters
- query (str): A consulta SQL a ser executada.
- list_quantity (int): O número de listas que deverão ser criadas para armazenar os resultados.
- params (tuple): Uma tupla contendo os valores que serão utilizados como parâmetros na consulta.
Returns
- list: Uma lista contendo múltiplas listas, cada uma correspondendo aos valores retornados pela consulta.
142 def complex_consult_query(self, query: str, params: tuple): 143 """ 144 Realiza uma consulta complexa no banco de dados, de acordo com os parametros informados. 145 146 Parameters 147 ---------- 148 query : str 149 A consulta a ser inserida. 150 params : tuple 151 A tupla com os valores a serem consultados. 152 153 Returns 154 ------- 155 complex_value : list 156 A lista com os valores da consulta. 157 """ 158 try: 159 connection = mysql.connector.connect(**db_config) 160 cursor = connection.cursor() 161 cursor.execute(query, params) 162 complex_value = cursor.fetchall() 163 cursor.close() 164 if complex_value is not None: 165 return complex_value 166 else: 167 return [0] 168 except mysql.connector.Error as error: 169 st.toast(":warning: Erro ao consultar dados: {}".format(error)) 170 st.error(error) 171 finally: 172 if connection.is_connected(): 173 connection.close()
Realiza uma consulta complexa no banco de dados, de acordo com os parametros informados.
Parameters
- query (str): A consulta a ser inserida.
- params (tuple): A tupla com os valores a serem consultados.
Returns
- complex_value (list): A lista com os valores da consulta.
175 def complex_consult_brute_query(self, query: str): 176 """ 177 Realiza uma consulta complexa no banco de dados. 178 179 Parameters 180 ---------- 181 query : str 182 A consulta a ser inserida. 183 184 Returns 185 ------- 186 complex_value : list 187 A lista com os valores da consulta. 188 """ 189 try: 190 connection = mysql.connector.connect(**db_config) 191 cursor = connection.cursor() 192 cursor.execute(query) 193 complex_value = cursor.fetchall() 194 cursor.close() 195 if complex_value is not None: 196 return complex_value 197 else: 198 return [0] 199 except mysql.connector.Error as error: 200 st.toast(":warning: Erro ao consultar dados: {}".format(error)) 201 st.error(error) 202 finally: 203 if connection.is_connected(): 204 connection.close()
Realiza uma consulta complexa no banco de dados.
Parameters
- query (str): A consulta a ser inserida.
Returns
- complex_value (list): A lista com os valores da consulta.
206 def treat_simple_result(self, value_to_treat: str, values_to_remove: list): 207 """ 208 Realiza o tratamento de uma cadeia de caracteres, de acordo com os parametros informados. 209 210 Parameters 211 ---------- 212 value_to_treat : str 213 O valor a ser tratado. 214 values_to_remove : list 215 Os valores a serem removidos. 216 217 Returns 218 ------- 219 final_result : str 220 O valor tratado. 221 """ 222 final_result = str(value_to_treat) 223 224 for i in range(0, len(values_to_remove)): 225 final_result = final_result.replace( 226 "{}".format(values_to_remove[i]), "") 227 228 return final_result
Realiza o tratamento de uma cadeia de caracteres, de acordo com os parametros informados.
Parameters
- value_to_treat (str): O valor a ser tratado.
- values_to_remove (list): Os valores a serem removidos.
Returns
- final_result (str): O valor tratado.
230 def treat_numerous_simple_result(self, values_to_treat: list, values_to_remove: list): 231 """ 232 Realiza o tratamento de varias cadeias de caracteres, de acordo com os parametros informados. 233 234 Parameters 235 ---------- 236 value_to_treat : list 237 Os valores a serem tratados. 238 values_to_remove : list 239 Os valores a serem removidos. 240 241 Returns 242 ------- 243 final_list : list 244 Os valores tratados. 245 """ 246 aux_str = "" 247 aux_list = [] 248 249 for i in range(0, len(values_to_treat)): 250 aux_str = str(values_to_treat[i]) 251 aux_list.append(aux_str) 252 253 final_str = "" 254 final_list = [] 255 256 for i in range(0, len(aux_list)): 257 final_str = str(aux_list[i]) 258 for i in range(0, len(values_to_remove)): 259 final_str = final_str.replace( 260 "{}".format(values_to_remove[i]), "") 261 final_list.append(final_str) 262 263 return final_list
Realiza o tratamento de varias cadeias de caracteres, de acordo com os parametros informados.
Parameters
- value_to_treat (list): Os valores a serem tratados.
- values_to_remove (list): Os valores a serem removidos.
Returns
- final_list (list): Os valores tratados.
265 def treat_complex_result(self, values_to_treat, values_to_remove: list): 266 """ 267 Realiza o tratamento de uma cadeia de caracteres, de acordo com os parametros informados. 268 269 Parameters 270 ---------- 271 value_to_treat : str 272 O valor a ser tratado. 273 values_to_remove : list 274 Os valores a serem removidos. 275 276 Returns 277 ------- 278 final_result : str 279 O valor tratado. 280 """ 281 aux_str = "" 282 aux_list = [] 283 284 final_str = "" 285 final_list = [] 286 287 for i in range(0, len(values_to_treat)): 288 aux_str = str(values_to_treat[i]) 289 aux_list = aux_str.split(", ") 290 for i in range(0, len(aux_list)): 291 final_str = str(aux_list[i]) 292 for i in range(0, len(values_to_remove)): 293 final_str = final_str.replace( 294 "{}".format(values_to_remove[i]), "") 295 final_list.append(final_str) 296 297 return final_list
Realiza o tratamento de uma cadeia de caracteres, de acordo com os parametros informados.
Parameters
- value_to_treat (str): O valor a ser tratado.
- values_to_remove (list): Os valores a serem removidos.
Returns
- final_result (str): O valor tratado.
299 def check_if_value_exists(self, query): 300 """ 301 Verifica se o valor da consulta existe no banco de dados. 302 303 Parameters 304 ---------- 305 query : str 306 A consulta a ser verificada. 307 308 Returns 309 ------- 310 bool 311 Retorna se o dado consultado existe ou não no banco de dados. 312 """ 313 connection = mysql.connector.connect(**db_config) 314 cursor = connection.cursor() 315 cursor.execute(query) 316 return cursor.fetchone() is not None
Verifica se o valor da consulta existe no banco de dados.
Parameters
- query (str): A consulta a ser verificada.
Returns
- bool: Retorna se o dado consultado existe ou não no banco de dados.
318 def update_table_registers(self, table: str, table_field: str, id_list: list): 319 """ 320 Realiza a atualização de registros no banco de dados, de acordo com os parametros informados. 321 322 Parameters 323 ---------- 324 table : str 325 A tabela que será atualizada. 326 table_field: str 327 O campo da tabela que será atualizado. 328 id_list : list 329 Os id's de identificação dos registros que serão atualizados. 330 """ 331 for i in range(0, len(id_list)): 332 333 update_id_query = """UPDATE {} SET pago = 'S' WHERE id_{} = {}""".format( 334 table, table_field, id_list[i]) 335 336 try: 337 connection = mysql.connector.connect(**db_config) 338 cursor = connection.cursor() 339 cursor.execute(update_id_query) 340 connection.commit() 341 cursor.close() 342 343 except mysql.connector.Error as err: 344 st.toast(f"Erro ao pagar despesas do cartão: {err}") 345 finally: 346 if connection.is_connected(): 347 connection.close()
Realiza a atualização de registros no banco de dados, de acordo com os parametros informados.
Parameters
- table (str): A tabela que será atualizada.
- table_field (str): O campo da tabela que será atualizado.
- id_list (list): Os id's de identificação dos registros que serão atualizados.
349 def update_table_unique_register(self, query: str, success_message: str, error_message: str): 350 """ 351 Realiza a atualização de um registro no banco de dados. 352 353 Parameters 354 ---------- 355 query : str 356 A consulta de atualização. 357 success_message : str 358 A mensagem que será exibida caso a atualização seja concluída. 359 error_message : str 360 A mensagem que será exibida caso ocorram erros durante a atualização. 361 """ 362 try: 363 connection = mysql.connector.connect(**db_config) 364 cursor = connection.cursor() 365 cursor.execute(query) 366 connection.commit() 367 cursor.close() 368 369 st.toast(":white_check_mark: {}".format(success_message)) 370 except mysql.connector.Error as error: 371 st.toast(":warning: {} {}".format(error_message, error)) 372 finally: 373 if connection.is_connected(): 374 connection.close()
Realiza a atualização de um registro no banco de dados.
Parameters
- query (str): A consulta de atualização.
- success_message (str): A mensagem que será exibida caso a atualização seja concluída.
- error_message (str): A mensagem que será exibida caso ocorram erros durante a atualização.