Newsgroup: it.comp.lang.visual-basic
Titolo: Costruzione Codice Incrementale

Buonasera a tutti,
   ringrazio ancora quanti mi hanno risposto al mio vecchio post.
Ora ho il seguente quesito:
Sempre nella piccola applicazione di gestione dei modulini ho deciso di 
creare a mano un codice incrementale che contraddistingua ogni modulino 
relativo all'anno in corso e che a fine anno mi si azzeri in tutte le 
sue parti. Ogni codice cliente ha un diminutivo composto da due lettere 
per identificare meglio i modulini già stampati. Il mio problema a 
questo punto è il seguente:
ho n clienti e ognuno ha un suo diminutivo (2 lettere).
quando vado ad aggiungere un nuovo modulino atraverso un bottone per 
generare il codiceintervento devo andare all'ultimo codiceintervento 
relativo al cliente, recuperare la parte numerica e incrementarla di uno 
per la creazione di quello nuovo.
Mi piacerebbe che il codiceintervento fosse così composto:
DiminutivoCliente.CodiceNumerico incrementale.
                XX.nnn
Come posso fare??
Il diminutivo cliente già riesco a recuperarlo, ma il CodiceNumerico non 
so come fare.
Qualcuno mi sa dare qualche indicazione in merito??
Ringrazio in anticipo.
Cristian

Cristian Meggiorin ha usato la sua tastiera per scrivere :

Prima fai l'insert del record, e memorizzi in una variabile la chiave 
assegnata (che sia un autoincrementante o un ID non importa).
Poi fai un Update del tipo:
UPDATE TB_INTERVENTI
SET NUMERO_INTERVENTO = 1 + ( COALESCE
      (SELECT MAX(NUMERO_INTERVENTO)
       FROM TB_INTERVENTI
       WHERE ANNO = YEAR(@ANNO_NUOVO_RECORD)
       AND DIMINUTIVOCLIENTE = @DIMINUTIVOCLIENTE_NUOVO_RECORD
       AND CHIAVE <> @CHIAVE_NUOVO_RECORD )
       , 0 )
WHERE CHIAVE = @CHIAVE_NUOVO_RECORD
Se poi ti serve sapere questo progressivo per aggiornare la form, basta 
fare un
SELECT DIMINUTIVOCLIENTE+'.'+CAST(NUMERO_INTERVENTO AS VARCHAR())
FROM TB_INTERVENTI
WHERE CHIAVE = @CHIAVE_NUOVO_RECORD
Ciao
Alberto
-- 
Max Beerbohm: Tutto ciò che è degno di essere fatto è stato fatto 
ripetutamente. Dalle cose mai fatte bisognerebbe tenersi, sospetto, 
molto alla larga.

Albe V° ha scritto:

Iperveloce.....
Grazie mille....
Provo subito....

Albe V° ha scritto:

Ho provato a mettere il codice da te sopra riportato, ma mi da parecchi 
errori di digitazione anche nella prima riga quando pa l'UPDATE.
Purtroppo uso Visual Studio Express 2005 e SQL Express 2005 e non mi 
riconosce neppure il comando SET che mi dice essere non più supportato.

Scriveva Cristian Meggiorin venerdì, 24/08/2007:

Gli errori di sintassi vengono segnalati nella prima riga, ma in realtà 
possono essere ovunque nel comando, che è interpretato monoliticamente.
Ovviamente le variabili @.... vanno sostituite con le tue variabili, o 
direttamente concatenate nella stringa Sql o impostate con DECLARE e 
SET ad inizio stringone (che tanto i comandi SQL non guardano gli a 
capo, quindi puoi mettere tutto su una unica stringa).
Per il resto, ho la sensazione che tu stia sbagliando qualcosa di più 
'fondamentale', ma da qui non vedo bene...
Alberto
-- 
Il tuo stesso identico umore,
ma la divisa di un altro colore

Albe V° ha scritto:

Purtroppo non sono molto pratico di VB, ho fatto un corso qualche anno 
fa sulla V6, ma poi cambiando mansioni non l'ho praticamente più usato e 
lo sto cominciando a prendere in mano adesso per esigenze personali. Ma 
ora ci provo e grazie ancora.

 Purtroppo non sono molto pratico di VB
Veramente io ti ho scritto del codice in SQL, non in VB...
Alberto
-- 
La bellezza è opinabile, sulla bruttezza sono tutti d'accordo.

 
E' vero, hai ragione!!!!