Query generata da wizard

di il
16 risposte

16 Risposte - Pagina 2

  • Re: Query generata da wizard

    :D

    allora “mi batti”… bene… fa piacere vedere che hai ancora voglia di fare queste cose :D

    tornando a noi, gia' avevo indicato il fatto che personalmente non concordo con la costruzione del comando cosi' pessimistico..
    il “motivo” di questa sintassi e' “semplice”: per aggiornare/cancellare una riga, e' necessario che NON sia stata modificata dal momento della sua “lettura”… quindi una filosofia completamente “pessimistica”… puo' avere senso in molti casi, ma non sempre…

    In SQL Server, per “semplificare” questa necessita', si puo' utilizzare una colonna di tipo RowVersion, una colonna che viene automagicamente gestita dal subsystem dello storage engine presente in SQL Server, che effettua un aggiornamento automatico del valore della colonna modificata, permettendoti di scrivere

    SELECT colonnaPK, ColonnaXX, ...., colonnaRowVersion 
    	FROM ...
    	WHERE ....;
    
    poi pseudo codice "applicativo"
    dim List(of pocoClass) testList As New List(of pocoClass)()
    
    While dataReader.Read()
    	testList.Add(New pocoClass With {.ColonnaPK = reader(0), .ColonnaXX = reader(n), ColonnaRowVersion = reader(xxx)})	
    End While
    
    ...
    testList(0).ColonnaXX = nuovoValore
    
    
    
    ed infine la chiamata al codice SQL di aggiornamento/cancellazione...
    
    UPDATE/DELETE ....
    	... {ColonnaXX = @valoreColonnaXX}
    	WHERE colonnaPK = @valorePK
    		AND colonnaRowVersion = @valoreRowVersion_ORIGINALE;
    

    dove tutta la logica pessimistica viene appunto “riassunta” dalla comparazione nella seconda riga del filtro WHERE, senza utilizzare la sintassi “prolissa” (ma comunque corretta) generata dal Wizard di VS.

    salutoni romagnoli
    – 
    Andrea

  • Re: Query generata da wizard

    03/01/2024 - asql ha scritto:


    il “motivo” di questa sintassi e' “semplice”: per aggiornare/cancellare una riga, e' necessario che NON sia stata modificata dal momento della sua “lettura”… quindi una filosofia completamente “pessimistica”… puo' avere senso in molti casi, ma non sempre…

    Salve,Andrea. Voglio fare due affermazioni (che non sono solo complimenti) sul tuo conto : 

    la prima riguarda le tue conoscenze, che mi sembrano (anzi,lo sono certamente) alte;

    la seconda è un pregio che solo pochi informatici hanno, cioè quello di rendere “elementari” (cioè comprensibili anche a poco o meno esperti) i concetti più complessi o meno afferrabili senza una attenta e ripetuta lettura.

    Ora ho capito anch'io (che è quanto dire!) perchè giudichi “prolissa” (ma comunque corretta) (la sintassi) generata dal Wizard di VS.

    Che dirti? continuerò a provare gli altri wizard (gestione db,relazioni,ecc.), ma ho avuto conferma che scrivere il codice riga per riga consente di capire cosa e come si fa un programma, più o meno complesso.

    Se non fosse stato per te ,quella sintassi “prolissa” (e non funzionante,peraltro) sarebbe rimasta inaccessibile.

    Salute dal Lazio a te e a tutta la Romagna.

    Gianfranco

Devi accedere o registrarti per scrivere nel forum
16 risposte