Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    37

    [Vb.net] SQL campo identità e cancellazione record

    Ciao a tutti vi spiego il mio problema. Allora ho una tabella con un campo identità che si autoincrementa ad ogni inserimento di 1. Supponiamo che l'ultimo record abbia in tale campo valore 6. se lo cancello e ne aggiungo un altro invece di assumere valore 6 questo assumerò 7. inoltre vorrei che se eliminassi il record numero 3 venisse aggiornato il campo identità di ciascun record seguente. come posso fare???grazie a tutti anticipatamente!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Scusa quale scopo???
    Sbagliare è umano, perseverare è diabolico.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Non ha senso (anzi, è anche pericoloso) un comportamento del genere da parte del db.

    I campi identità non devono variare in quanto correlati ad altri campi (chiavi esterne) di altre tabelle. Cambiando i primi, dovresti cambiare TUTTI gli altri, cosa che non ha senso fare e non si fa.

    Del resto quel codice e' usato puramente all'interno del db (appunto) per correlare i record tra tabelle ... a te (e all'utente) non dovrebbe importare nulla se uno di questi ha valore 3 o 6 ...

    Spero che tu non li userai ANCHE come "numeri" di documenti o altro ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    37
    allora....credo di aver fatto una cavolata. vi spiego a cosa mi servono: praticamente a questa tabella possono essere aggiunti campi in base a certe situazioni di lavoro. io utilizzavo il campo identità (numerato in modo sequenziale nei vari record) per poter inserire il valore zero in quelle celle appartenenti al nuovo campo appena aggiunto ed i record preesistenti.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da begal
    io utilizzavo il campo identità (numerato in modo sequenziale nei vari record) per poter inserire il valore zero in quelle celle appartenenti al nuovo campo appena aggiunto ed i record preesistenti.
    No ... non ho capito ... che vuoi dire?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    37
    Allora vediamo se riesco a spiegarmi meglio. Ho una tabella composta da 6 campi di cui uno identità che ad ogni inserimento di un nuovo record si autoincrementa di 1. immagina ora di avere 6 record presenti tabella. il campo identità di ciascun record avrà valore 1 per il primo 6 per l'ultimo. Ora a questa situazione di partenza devo aggungere un nuovo campo. questo presenterà 6 celle relative ai 6 record già presenti in tabella. Con un ciclo for che va da 0 fino a numero max di record pone a zero il valore in queste celle. il codie per l'esattezza è questo:

    Dim i As Integer
    For i = 1 To recordmax
    objCommand.Connection = objConnection
    objCommand.CommandText = "UPDATE Commesse SET " & txtUserid.Text & " = '0' WHERE Ncommessa ='" & i & "' "
    'objCommand.Parameters.AddWithValue("@voce", txtUserid.Text)
    'objCommand.Parameters.AddWithValue("@numero", 0)
    objCommand.CommandType = CommandType.Text
    objConnection.Open()
    objCommand.ExecuteNonQuery()
    objConnection.Close()


    Next

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    A parte il fatto che non capisco perche' tu debba "aggiungere un campo" al db (non e' consigliabile modificare a runtime lo schema del db, anche perche' non serve ...), non capisco ancora cosa c'entri l'identità con questa operazione ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da oregon
    A parte il fatto che non capisco perche' tu debba "aggiungere un campo" al db (non e' consigliabile modificare a runtime lo schema del db, anche perche' non serve ...), non capisco ancora cosa c'entri l'identità con questa operazione ...
    Mi pare la stessa discussione che c'è qui
    http://www.p2pforum.it/forum/showthread.php?t=380991
    o sbaglio?
    Anche qui avevo espresso lo stesso dubbio.

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    37
    il campo identità mi permette di avere tutti record che siano numerati in maniera crescente. guarda il ciclo for che ti ho postato. ed immagina che ci siano 2 soli record e che io cancelli il primo record ossia quello dove ( per rifarmi al codice) il campo Ncommessa (campo identità) sia uguale ad 1. Questo ciclo non funzionerà mai. Mentre se una volta cancellato il record potessi porre il campo Ncommessa di quello rimanente pari ad 1 e far si che i successi abbiano numerazione senza buchi tutto ciò permetterebbe al ciclo di continuare a funzionare.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    A parte il fatto che non mi hai risposto sulla questione dell'aggiunta di un campo (dovresti fare diversamente ...), ma perche' ti basi sul campo Ncommessa per fare il ciclo? Perche' non fai una sola

    UPDATE ...

    al posto del ciclo stesso?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.