Zugriff auf einen SQL-Server

Aus DBWiki
Wechseln zu: Navigation, Suche

Untenstehende Codebeispiele zeigen den Zugriff auf einen MS SQL Server 2000/2005 und die Verwendung der geöffneten Verbindung.

Sie stellen jedoch nur eine einzelne Variante dar, die je nach benötigter Technik beliebig abgeändert werden können.

Beachte bitte, dass in diesem Beispiel Benutzername und Kennwort nur zu Demonstrationszwecken in Klartext hinterlegt werden!

Option Compare Database
Option Explicit
 
'Ein Applikationsweit gültiges Zugriffsobjekt anlegen
Public conn As ADODB.Connection
 
Public Sub ConnectSQL()
 
   Dim strServer As String
   Dim strDatenbank As String
   Dim strBenutzer As String
   Dim strKennwort As String
 
   strServer = "DeinSQLServer"
   strDatenbank = "DeineDatenbank"
   strBenutzer = "selbst"
   strKennwort = "pwd"
   'Der Verweis auf Microsoft ActiveX Data Objects 2.x Library
   'muss bereits gesetzt sein!
   Set conn = New ADODB.Connection
 
   With conn
      .Provider = "SQLOLEDB.1" 'Datenbanktreiber für den Zugriff auf SQL Server 2000
     '.Provider = "SQLNCLI.1"  'Datenbanktreiber für den Zugriff auf SQL Server 2005
      .Properties("Persist Security Info").Value = False
      .Properties("Data Source").Value = strServer
      .Properties("Initial Catalog").Value = strDatenbank
      'Für den Zugriff mit Windows-Authentifizierung
      'muss der folgende Eintrag entkommentiert werden, Einträge
      '(User ID) und (Password) müssen aber auskommentiert werden.
     '.Properties("Integrated Security").Value = "SSPI"
      .Properties("User ID").Value = strBenutzer
      .Properties("Password").Value = strKennwort
      .Open
   End With
 
End Sub

Die so erzeugte Verbindung zum SQL Server kann dann im Code hinter einem Formular für verschiedenste Zwecke verwendet werden. Im nachfolgenden Beispiel wird eine Tabelle abgefragt um die Daten anschließend zu bearbeiten.

Private Sub Abfrage()
 
   Dim rst As New ADODB.Recordset
 
   ConnectSQL 'Die Datenbank öffnen
 
   With rst
      .ActiveConnection = conn
      .LockType = adLockOptimistic
      .CursorType = adOpenKeyset
      .CursorLocation = adUseClient   'Für das Zählen der Datensätze
      .Open "SELECT * FROM Tabelle"
 
      If .RecordCount >= 1 Then
         .MoveFirst
         Do Until rst.EOF
            'Das Recordset verarbeiten
            'Daten ändern, eintragen
            '...
            .Update
            .MoveNext
         Loop
      Else
         MsgBox "Keine Daten vorhanden!"
      End If
 
      .Close      'Recordset schließen
      conn.Close  'Verbindung zum SQL Server schließen
 
   End With
 
End Sub

Der Vollständigkeit halber sei an der Stelle noch angeführt, dass Datenbankverbindungen und die Verarbeitung von Daten immer durch geeignete Methoden zur Fehlerbehandlung abgesichert werden sollen! (Wegen der Übersichtlichkeit wurde in diesen Codes auf die Einbindung solcher Fehlerbehandlungen verzichtet)

Wikilinks