2 messaggi dal 02 dicembre 2007
Ciao un quesito che mi rea problemi
Estraggo da una colonna di tipo varchar una stringa composta cosi 000000001 io devo incrementare di uno questo valore come posso fare? Ho usato la funzione sscanf per estrarre il numero in un'intero e incrementarlo però ho, in questo caso 2 nell'intero se volgio farlo tornare una stringa con gli zero come faccio? (naturalmente la cosa deve valere per qualsiasi numero anche 002568002)
L'unica soluzione che m,i è venuta in mente è leggere quanti zeri ci sono a destra del primo numero diverso da zero e rimetterli dentro successivamente in caso però sia un 9 non deve metterne uno, è l'unico modo?
Grazie mille.
176 messaggi dal 04 giugno 2007
Contributi | Blog
Assumendo C standard o C++:

// Converti la stringa in intero con
intero = atoi(stringaDalDB);
//incrementi
intero++;
//Converti l'intero in stringa di nove caratteri con zeri a complemento con
sprintf(buffer,"%9d",intero);

Saluti

--Alessandro

P.S. non era piu' semplice (ed efficiente) avere nel database un intero?
47 messaggi dal 18 settembre 2006
Contributi
Visto che fai riferimento a campi di database, c'è sempre la possibilità di operare direttamente all'interno di quest'ultimo, ammesso che il sistema lo permetta.

Nel caso di SQL Server 7.0+, ad esempio, puoi utilizzare una query di aggiornamento simile a questa:

UPDATE MyTable
SET MyField = REPLACE(STR(MyField + 1, 9), ' ', '0')
WHERE ...

HTH

Efran Cobisi
Solution developer, consultant and trainer
MCAD, MCT, MCTS: SQL Server 2005

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.