+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 9 su 9

sql, vb.net e chiavi primarie

  1. #1
    rashid non è in linea Novello
    Salve.

    dopo un'importazione di dati da excel a access ho notato che alcuni record venivano scartati dall'importazione per questioni relative a chiavi primarie e robe del genere. Ho verificato che non si duplicava alcun valore e ho provato a reinserire i dati tramite un form vb.net e ho ottenuto questo errore:

    "Modifiche non apportate perché provocherebbero valori duplicati nell'indice, nella chiave primaria o nella relazione. Modificare i dati nel campo o nei campi che contengono dati duplicati, rimuovere l'indice o ridefinire l'indice per consentire l'inserimento di voci duplicate, quindi riprovare."

    Stesso errore ottengo quando cerco di inserire un nuovo record.

    La cosa strana e che quando ho inserito questi dati manualmente all'interno della tabella access questi venivano accettati senza batter ciglio.

    Qualcuno di voi può aiutarmi?

  2. #2
    Senza conoscere la struttura del db, tabelle, indici, relazioni la vedo difficile
    ℹ️ Leggi di più su AntonioG ...

  3. #3
    rashid non è in linea Novello
    Buongiorno AntonioG,

    ho una tabella con chiave primaria (ID) e vari campi, due dei quali (Partita_IVA e Codice_Fiscale) impostati in questo modo:
    Richiesto: No
    Consenti lunghezza zero: Sì
    Indicizzato: Sì (Duplicati non ammessi)

    Ho pensato che il problema derivasse dal fatto che per alcuni record il campo Partita_IVA è vuoto, quindi questo campo vuoto viene duplicato. Ho impostato il campo come non indicizzato e tutto funziona, ma così se dovessi inserire due partite iva uguali ovviamente la tabella me lo permetterebbe.

    Qualche soluzione?

  4. #4
    Il campo partita Iva/codice fiscale deve essere uno solo
    ℹ️ Leggi di più su AntonioG ...

  5. #5
    L'avatar di Max.Riservo
    Max.Riservo ora è in linea Scribacchino
    Quote Originariamente inviato da AntonioG Visualizza il messaggio
    Il campo partita Iva/codice fiscale deve essere uno solo
    Ni ... Antonio.
    Le aziende hanno partita I.V.A. e Codice Fiscale che spesso coincidono ma esistono molti casi in cui il codice fiscale aziendale (seppure numerico a 11 cifre) è diverso dalla partita I.V.A. per non parlare poi dei professionisti che hanno la partita I.V.A. e il codice fiscale 'canonico'.

    Quindi penso che i 2 campi siano entrambi necessari ...
    Se poi si gestiscono anche persone fisiche che non hanno partita I.V.A. allora occorre permettere il valore null per il campo (oppure utilizzare un valore che non può esistere - ie 11 zeri).
    Utilizzando i 2 campi occorre garantire l'univocità della chiave che è appunto data dall'unione dei 2 campi.

  6. #6
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Quote Originariamente inviato da rashid Visualizza il messaggio
    Indicizzato: Sì (Duplicati non ammessi)
    Qui sta il tuo problema.
    Se il campo può essere a lunghezza zero, è impossibile non avere campi duplicati, perché anche solo due campi a zero violano la regola Duplicati non ammessi.
    ℹ️ Leggi di più su gibra ...

  7. #7
    rashid non è in linea Novello
    Quote Originariamente inviato da gibra Visualizza il messaggio
    Se il campo può essere a lunghezza zero, è impossibile non avere campi duplicati, perché anche solo due campi a zero violano la regola Duplicati non ammessi
    Quindi mi pare di capire che non c'è modo di risolvere la questione...
    Corretto?

  8. #8
    L'avatar di Max.Riservo
    Max.Riservo ora è in linea Scribacchino
    Quote Originariamente inviato da rashid Visualizza il messaggio
    Quindi mi pare di capire che non c'è modo di risolvere la questione...
    Corretto?
    Provo a ribadire il concetto : per garantire l'univocità della chiave, devi utilizzare i 2 campi (Partita I.V.A. + Codice fiscale), la chiave concatenata (data dai 2 campi) DEVE essere univoca.
    Nel mondo reale (italiano) puoi avere :
    - aziende che hanno Partita I.V.A. e codice fiscale uguali (numerici da 11 cifre). Non mi risulta che esistano aziende senza codice fiscale (ovvero è uguale alla partita I.V.A.)
    - persone fisiche che non hanno la partita I.V.A. con univocità del codice fiscale garantita dal ministero delle finanze (partita I.V.A. =null, codice fiscale 17 caratteri alfanumerico)
    - aziende che hanno la stessa Partita I.V.A., ma codice fiscale diverso (partita I.V.A. numerica 11 cifre, codice fiscale numerico 11 cifre)
    Quindi per risolvere la tua questione devi impostare un indice univoco composto dai campi Partita I.V.A. + Codice Fiscale.
    Se poi devi anche gestire delle anagrafiche delle quali NON conosci la partita I.V.A. / codice fiscale allora la cosa si complica ...

  9. #9
    rashid non è in linea Novello
    Chiarissimo. Ci provo. Grazie infinite.

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. Risposte: 2
    Ultimo Post: 25-01-2012, 12:53
  2. [VB6] Chiavi di registro
    Da aurum81 nel forum Visual Basic 6
    Risposte: 3
    Ultimo Post: 10-10-2006, 16:19
  3. Chiavi di Registro
    Da Petra nel forum Visual Basic 6
    Risposte: 1
    Ultimo Post: 16-04-2005, 12:25
  4. Chiavi di registro
    Da luciano.net nel forum Visual Basic 6
    Risposte: 5
    Ultimo Post: 30-03-2005, 17:20
  5. VB6 registrazioni chiavi
    Da mino nel forum Visual Basic 6
    Risposte: 1
    Ultimo Post: 04-05-2004, 15:39