fix cursor/fetchall()

This commit is contained in:
2024-12-13 10:01:15 +01:00
parent ef3b54cc80
commit 247d0ad1d2
13 changed files with 82 additions and 64 deletions

View File

@ -7,26 +7,41 @@ from tkinter import filedialog,messagebox
from datetime import datetime
from mysql.connector import Error
def search_article(connection,codice,listino):
cursor_1 = connection.cursor()
cursor_2 = connection.cursor()
query = "SELECT codice FROM art WHERE codice = %s"
cursor_1.execute(query,(codice,))
result_1 = cursor_1.fetchone()
def search_article(connection, codice, listino):
cursor_1 = connection.cursor(buffered=True)
cursor_2 = connection.cursor(buffered=True)
query_executed_cursor_2 = False # Variabile per controllare se la query è stata eseguita
try:
query = "SELECT codice FROM art WHERE codice = %s"
cursor_1.execute(query, (codice,))
result_1 = cursor_1.fetchone()
if result_1: # se l'articolo esiste
query_lsv = "SELECT TLV_CODICE FROM lsv WHERE ART_CODICE = %s AND TLV_CODICE = %s"
cursor_2.execute(query_lsv, (codice, listino))
result_2 = cursor_2.fetchone()
query_executed_cursor_2 = True # Imposta a True se la query è stata eseguita
if result_1: ## se l'articolo esiste creco per codice listino
query_lsv = "SELECT TLV_CODICE FROM lsv WHERE ART_CODICE = %s AND TLV_CODICE = %s"
cursor_2.execute(query_lsv,(codice,listino))
result_2 = cursor_2.fetchone()
if result_2: ## se il codice listino è stato trovato
print('codice listino trovato')
return True ## esistono sia articolo che codice listino
if result_2: # se il codice listino è stato trovato
print('codice listino trovato')
return True # esistono sia articolo che codice listino
else:
print('codice listino non trovato')
return 'not code art'
else:
print('codice listino non trovato')
return 'not code art'
else:
print('codice non esiste')
return False ## l'articolo non esiste
print('codice non esiste')
return False # l'articolo non esiste
except Exception as e:
print(f"Errore durante la ricerca: {e}")
return None # Gestisci l'errore come necessario
finally:
# Assicurati di leggere tutti i risultati prima di chiudere il cursore
if cursor_1:
cursor_1.close() # Chiudi il cursore 1
if cursor_2 and query_executed_cursor_2:
cursor_2.fetchall() # Leggi eventuali risultati non letti solo se la query è stata eseguita
cursor_2.close() # Chiudi il cursore 2