le avventure di un capotecnico :-)
Giuro che è successo realmente. ne sono appena uscito :-)
Il cliente mi dice che una procedura di alimentazione (che viene eseguita tutti i mesi da 1 anno e mezzo a questa parte) ha dato un errore.
Mi faccio girare l'errore e viene fuori (dopo un po' di indagini e telefonate) che qualcuno (più precisamente "il programmatore" - non so ancora adesso chi sia) ha deciso di cambiare da numerico (in realtà da float, ma non facciamo i pignoli) a alfanumerico il tipo dato di una colonna di una tabella.
Ok. Allora chiedo: "che tipo dato, esattamente? e che lunghezza?" - così per fare le cose per bene...
Dopo un po' di tempo il mio interlocutore (che nel frattempo ha parlato con "il programmatore") mi richiama e mi dice che il tipo è nvarchar (come da post precedente, n perchè contiene numeri, var perchè non è di lunghezza fissa e char perchè può contenere caratteri). Rispetto alla lunghezza "fai o 4 o 5, di lunghezza... i codici sono tutti di quattro, ma non si sa mai".
Io allibito non trovo la forza di replicare. Decido di far finta di nulla e mi metto a modificare la procedura in modo da gestire il tutto.
Mando il tutto a loro... e mi dicono che non va ancora bene.
In effetti andando a vedere c'è qualcosa che non funziona, e il motivo è che oltre a cambiare il tipo dato hanno anche "paddato" i codici con zeri a sinistra (esempio: invece che '12' trovo '0012'). E le tabelle dalla mia parte non prevedevano questa cosa. Incidentalmente: ora che ho le tabelle davanti mi accorgo che invece del NVarChar di 4 o 5... hanno definito la colonna VarChar di 50. Grunt. Vabbè.
Ok. Mi armo di pazienza e sistemo.
Rilancio la procedura.
Sembra tutto a posto. Vado via...
Passa mezz'ora e mi richiamano! Pare che ci sia ancora "qualche problema"...
Cerco di farmi spiegare, ma non c'è nulla da fare, devo tornare per capire.
Ok. Sono davanti al database. Guardo e riguardo... alla fine capisco!
La colonna varchar di 50 deve andare in join con un'altra colonna sulla tabellona dei clienti (sempre roba loro) che "purtroppo" NON e' stata modificata, ed è ancora float !!! E le mie procedure o trattano il dato numerico o no... o comunque non posso da una parte avere il codice 12 e dall'altra il codice '0012' e sperare che la join funzioni...
A questo punto perdo la pazienza. Scrivo a tutti raccontando il tutto, e la BRILLANTE soluzione che conclude il tutto è....
"Facciamo così, rimettiamo tutto com'era prima".
AAAAAAAAAAAAAAAAGGGGGGGGGGGGGHHHHHHHHHHHH!!!!!!
Ok. è una candid camera.
p.s. non so ancora chi sia "il programmatore" :-)
Il cliente mi dice che una procedura di alimentazione (che viene eseguita tutti i mesi da 1 anno e mezzo a questa parte) ha dato un errore.
Mi faccio girare l'errore e viene fuori (dopo un po' di indagini e telefonate) che qualcuno (più precisamente "il programmatore" - non so ancora adesso chi sia) ha deciso di cambiare da numerico (in realtà da float, ma non facciamo i pignoli) a alfanumerico il tipo dato di una colonna di una tabella.
Ok. Allora chiedo: "che tipo dato, esattamente? e che lunghezza?" - così per fare le cose per bene...
Dopo un po' di tempo il mio interlocutore (che nel frattempo ha parlato con "il programmatore") mi richiama e mi dice che il tipo è nvarchar (come da post precedente, n perchè contiene numeri, var perchè non è di lunghezza fissa e char perchè può contenere caratteri). Rispetto alla lunghezza "fai o 4 o 5, di lunghezza... i codici sono tutti di quattro, ma non si sa mai".
Io allibito non trovo la forza di replicare. Decido di far finta di nulla e mi metto a modificare la procedura in modo da gestire il tutto.
Mando il tutto a loro... e mi dicono che non va ancora bene.
In effetti andando a vedere c'è qualcosa che non funziona, e il motivo è che oltre a cambiare il tipo dato hanno anche "paddato" i codici con zeri a sinistra (esempio: invece che '12' trovo '0012'). E le tabelle dalla mia parte non prevedevano questa cosa. Incidentalmente: ora che ho le tabelle davanti mi accorgo che invece del NVarChar di 4 o 5... hanno definito la colonna VarChar di 50. Grunt. Vabbè.
Ok. Mi armo di pazienza e sistemo.
Rilancio la procedura.
Sembra tutto a posto. Vado via...
Passa mezz'ora e mi richiamano! Pare che ci sia ancora "qualche problema"...
Cerco di farmi spiegare, ma non c'è nulla da fare, devo tornare per capire.
Ok. Sono davanti al database. Guardo e riguardo... alla fine capisco!
La colonna varchar di 50 deve andare in join con un'altra colonna sulla tabellona dei clienti (sempre roba loro) che "purtroppo" NON e' stata modificata, ed è ancora float !!! E le mie procedure o trattano il dato numerico o no... o comunque non posso da una parte avere il codice 12 e dall'altra il codice '0012' e sperare che la join funzioni...
A questo punto perdo la pazienza. Scrivo a tutti raccontando il tutto, e la BRILLANTE soluzione che conclude il tutto è....
"Facciamo così, rimettiamo tutto com'era prima".
AAAAAAAAAAAAAAAAGGGGGGGGGGGGGHHHHHHHHHHHH!!!!!!
Ok. è una candid camera.
p.s. non so ancora chi sia "il programmatore" :-)
Commenti