[VB.NET] Creatie Tabel: Foreign Keys?

Pagina: 1
Acties:

  • Rath
  • Registratie: April 2002
  • Laatst online: 18-02 10:59
Ik ben nu al een paar dagen bezig met een access database vanaf scratch te programmeren vanuit vb.net, tot hiertoe lukt alles (maken van de database-file, aanmaken van tabellen en hun kolommen) enkel die foreign keys krijg ik maar niet in orde :'( heb nu al redelijk wat tijd doorgebracht met zoeken op internet maar veel wijzer word ik er niet uit

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
  Try
    cn.Open()
    command = "CREATE TABLE tbl_Clubs(" & _
        "clb_ClubNr INTEGER IDENTITY(1,1) CONSTRAINT pk_clb PRIMARY KEY, " & _
        "clb_Naam STRING NOT NULL, " & _
        "clb_GymFed BIT NOT NULL, " & _
        "clb_Paswoord STRING NOT NULL, " & _
        "clb_ContactPersoonNr INTEGER CONSTRAINT fk_clb_ctp " & _
        "FOREIGN KEY REFERENCES tbl_ContactPersoon(ctp_ContactPersoonNr))"

    cm = New OleDbCommand(command, cn)
    cm.ExecuteNonQuery()

    command = "CREATE TABLE tbl_ContactPersoon(" & _
        "ctp_ContactPersoonNr INTEGER IDENTITY(1,1) CONSTRAINT pk_ctp PRIMARY KEY, " & _
        "ctp_Naam STRING NOT NULL, " & _
        "ctp_Voornaam STRING NOT NULL, " & _
        "ctp_GSM STRING, " & _
        "ctp_Straat STRING NOT NULL, " & _
        "ctp_Huisnummer INTEGER NOT NULL, " & _
        "ctp_Bus INTEGER, " & _
        "ctp_TelNr STRING, " & _
        "ctp_Mail STRING, " & _
        "ctp_faxNr STRING, " & _
        "ctp_GemeenteNr INTEGER NOT NULL" & _
        ")"

    cm = New OleDbCommand(command, cn)
    cm.ExecuteNonQuery()
  Catch ex As Exception
    MessageBox.Show(ex.Source & vbCrLf & ex.Message)
  Finally
    cn.Close()
  End Try

messagebox geeft volgende melding:
code:
1
2
Microsoft JET Database Engine
De component CONSTRAINT bevat een syntaxisfout.

I don't believe we have a society, we have a colony of animals


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:40
Je moet eerst je tabel contactpersoon maken, en dan pas je constraint die tbl_contactpersoon refereert, want hoe kan je anders naar iets refereren dat nog niet bestaat?

Daarnaast kan je ook eerst je tabellen maken, en dan met een alter statement de constraints toevoegen:

code:
1
2
3
ALTER TABLE tbl_Clubs
ADD CONSTRAINT <constraintnaam> 
FOREIGN KEY (clb_ContactPersoonnr) REFERENCES tbl_ContactPersoon(ContactPersoonnr)

https://fgheysels.github.io/


  • Rath
  • Registratie: April 2002
  • Laatst online: 18-02 10:59
whoami schreef op 04 februari 2004 @ 20:18:
Je moet eerst je tabel contactpersoon maken, en dan pas je constraint die tbl_contactpersoon refereert, want hoe kan je anders naar iets refereren dat nog niet bestaat?

....
idd dat is waar... even iets rechtzetten in de code waar alle tabellen aangemaakt worden, wordt contactpersoon eerst aangemaakt, en toch blijft hij die fout geven...

mss dat die alter table manier mijn probleem oplost

I don't believe we have a society, we have a colony of animals