Guten Morgen,
um Rechner im Heimnetz auf dem neusten Stand zu halten, habe ich ein Updateprogramm entwickelt. Dort können u.a. neue Datentabellen in die vorhandene Datenbank angelegt werden.
Code - Tabellenanlage (funktioniert so):
Nun möchte ich in einer bestehende Tabelle, eine Spalte hinzufügen.
Code:
Hier tut sich nichts. Tabelle wird nicht erweitert, es kommt auch keine Fehlermeldung.
Hier der Aufruf für die Erweiterung:
um Rechner im Heimnetz auf dem neusten Stand zu halten, habe ich ein Updateprogramm entwickelt. Dort können u.a. neue Datentabellen in die vorhandene Datenbank angelegt werden.
Code - Tabellenanlage (funktioniert so):
VB.NET-Quellcode
- Public Sub TabelleNeuanlage(ByVal Bankverbindung As String, ByVal Tabellennamen As String)
- Dim MeineDatenbank As New ADOX.Catalog
- Dim MeineVerbindung As New ADODB.Connection
- Dim MeineTabelle As New ADOX.Table
- Dim MeineSpalte As ADOX.Column
- Dim MeinIndex As New ADOX.Index
- Dim I As Integer = 0
- Try
- MeineVerbindung.ConnectionString = Bankverbindung
- MeineVerbindung.Open()
- MeineDatenbank.ActiveConnection = MeineVerbindung
- MeineTabelle.Name = Tabellennamen
- MeineSpalte = New Column
- With MeineSpalte
- .ParentCatalog = MeineDatenbank
- .Name = "ID"
- .Type = DataTypeEnum.adInteger
- .Properties("Nullable").Value = False
- .Properties("AutoIncrement").Value = True
- End With
- MeineTabelle.Columns.Append(MeineSpalte)
- With MeinIndex
- .Name = "PrimaryKey"
- .PrimaryKey = True
- .Columns.Append("ID", MeineTabelle.Columns("ID").Type, MeineTabelle.Columns("ID").DefinedSize)
- End With
- MeineTabelle.Indexes.Append(MeinIndex)
- For I = 0 To Me.TabellenNeuanlageSpaltenliste.Count - 1
- MeineSpalte = New Column
- With MeineSpalte
- .ParentCatalog = MeineDatenbank
- .Name = Me.TabellenNeuanlageSpaltenliste(I).Spaltennamen
- .Type = Me.TabellenNeuanlageSpaltenliste(I).Datentyp
- .DefinedSize = Me.TabellenNeuanlageSpaltenliste(I).MaxLaenge
- .Properties("Nullable").Value = Me.TabellenNeuanlageSpaltenliste(I).LeerwertErlaubt
- End With
- MeineTabelle.Columns.Append(MeineSpalte)
- Next
- MeineDatenbank.Tables.Append(MeineTabelle)
- Catch ex As Exception
- MessageBox.Show("Fehler Tabellen-Neuanlage." & vbNewLine &
- "Fehler:" & ex.Message, "Update", MessageBoxButtons.OK, MessageBoxIcon.Hand)
- End Try
- Me.TabellenNeuanlageSpaltenliste = New List(Of CTabellenliste)
- End Sub
Nun möchte ich in einer bestehende Tabelle, eine Spalte hinzufügen.
Code:
VB.NET-Quellcode
- Public Sub TabellenErweiterung(ByVal Bankverbindung As String, ByVal Tabellennamen As String)
- Dim MeineDatenbank As New ADOX.Catalog
- Dim MeineVerbindung As New ADODB.Connection
- Dim MeineTabelle As New ADOX.Table
- Dim MeineSpalte As ADOX.Column
- Dim MeinIndex As New ADOX.Index
- Dim I As Integer = 0
- Try
- MeineVerbindung.ConnectionString = Bankverbindung
- MeineVerbindung.Open()
- MeineDatenbank.ActiveConnection = MeineVerbindung
- MeineTabelle.Name = Tabellennamen
- For I = 0 To Me.TabellenNeuanlageSpaltenliste.Count - 1
- MeineSpalte = New Column
- With MeineSpalte
- .ParentCatalog = MeineDatenbank
- .Name = Me.TabellenNeuanlageSpaltenliste(I).Spaltennamen
- .Type = Me.TabellenNeuanlageSpaltenliste(I).Datentyp
- .DefinedSize = Me.TabellenNeuanlageSpaltenliste(I).MaxLaenge
- .Properties("Nullable").Value = Me.TabellenNeuanlageSpaltenliste(I).LeerwertErlaubt
- End With
- MeineTabelle.Columns.Append(MeineSpalte)
- Next
- Catch ex As Exception
- MessageBox.Show("Fehler Tabellen-Erweiterung." & vbNewLine &
- "Fehler:" & ex.Message, "Update", MessageBoxButtons.OK, MessageBoxIcon.Hand)
- End Try
- Me.TabellenNeuanlageSpaltenliste = New List(Of CTabellenliste)
- End Sub
Hier tut sich nichts. Tabelle wird nicht erweitert, es kommt auch keine Fehlermeldung.
Hier der Aufruf für die Erweiterung:
VB.NET-Quellcode
- Private Sub UPD_1006()
- ' Diese zwei Zeilen sind in jedem UPD_10.... erforderlich
- Me.AuftragBezeichnung = "(1006) - Modi Bildschirmschoner (Tabellenerweiterung) "
- If Rechner.IstHostrechner Then Exit Sub
- Daten.TabellenNeuanlageSpaltenliste = New List(Of MBC_Datenbank.CTabellenliste)
- Daten.TabellenNeuanlageSpaltenliste.Add(New MBC_Datenbank.CTabellenliste With {.Spaltennamen = "Bildschirmschoner",
- .Datentyp = ADOX.DataTypeEnum.adBoolean,
- .MaxLaenge = 1,
- .LeerwertErlaubt = False})
- Daten.TabellenErweiterung(Daten.Verbindungsstring_MBMEIN, "Modi")
- End Sub
Gruß Markus
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Westerwälder“ ()