BEISPIEL
Praktisches Arbeiten mit dem SQL Server
In diesem Abschnitt wollen wir uns der SQL Server-Programmierung von der praktischen Seite nähern.
Ausgehend von der Realisierung mit Hilfe der Access 2007-Oberfläche stellen wir Ihnen Realisierungs-
möglichkeiten mit Hilfe der DMO, der ADOX sowie TSQL-Anweisungen vor. Für welche Variante Sie sich
letztlich entscheiden, hängt auch vom Einsatzfall ab. So bieten sich beispielsweise TSQL-Skripte für das
Erstellen der Datenbank mit den enthaltenen Objekten an, für die Verwaltung sind meist die SQLDMO die
bessere Wahl. Die Daten selbst werden Sie wohl mit ADO-Anweisungen oder der Access-Oberfläche aus-
werten.
Erstellen neuer SQL Server-Datenbanken
Der erste Schritt zu einer Client/Server-Anwendung ist sicher das Erzeugen der nötigen Datenbank auf dem
SQL Server. Einen fertig installierten SQL Server bzw. eine installierte Express Edition setzen wir an dieser
Stelle einmal voraus.
Wie Sie mit Hilfe der Access-Oberfläche die Datenbank erstellen und konfigurieren, wurde bereits ab Seite
613 ausführlich dargestellt. Eher unbewusst wurden durch den Assistenten alle nötigen Vorarbeiten auf
dem Server durchgeführt. Doch wie läuft das Ganze ab, wenn aus dem Programm heraus eine neue Daten-
bank erzeugt werden soll?
Mit SQLDMO und TSQL bieten sich zwei verschiedene Varianten an. Für die folgenden Beispiele müssen
Sie zum einen den Namen des SQL Servers wissen, zum anderen brauchen Sie auch die nötigen Rechter
den Zugriff auf den Server.
Verwenden von SQLDMO
Ausgangspunkt für das Erstellen neuer Datenbanken auf dem SQL Server ist zunächst eine geöffnete Ver-
bindung. Dafür ist die Methode Connect eines SQLServer-Objektes verantwortlich. Übergeben Sie dieser
Methode neben dem Servernamen Ihren Anmeldenamen und das Passwort. Nachfolgend können Sie der
Databases-Collection ein neues Database-Objekt hinzufügen. Im einfachsten Falle belassen Sie es bei den
Standard-Einstellungen bezüglich Protokolldatei, Datenbankgröße etc.
Erzeugen der Datenbank »Buchhaltung« auf dem Server ».\SQLExpress«.
Sub CreateDB()
Dim serv As New SQLDMO.SQLServer
Dim db As New SQLDMO.Database
serv.Connect ".\SQLExpress", "sa", "tom"
db.Name = "Buchhaltung"
serv.Databases.Add db
serv.Disconnect
End Sub
Etwas aufwändiger wird es, wenn Sie auch eine Maximalgröße für die Datenbank angeben wollen. Dies ent-
spricht den Einstellungen, die Sie auch mit Hilfe des SQL Server Management Studios vornehmen können
(siehe folgende Abbildung).
627
Praktisches Arbeiten mit dem SQL Server
BEISPIEL
Kapitel 10: SQL Server
Abbildung 10.18 Festlegen der Datenbankeigenschaften
In diesem Fall müssen Sie ein neues DBFile-Objekt erstellen, mit dem Sie neben der maximalen Dateigröße
auch diverse Einstellungen für den Speicherort (Dateien/Medien) vornehmen können.
Über die DBOption-Eigenschaft des jeweiligen Database-Objekts haben Sie Zugriff auf eine ganze Reihe von
Eigenschaften, die Sie auch mit dem SQL Server Management Studio bearbeiten können:
Von Bedeutung sind insbesondere die Eigenschaften:
ReadOnly (Schreibgeschützt),
SelectIntoBulkCopy (Massenkopieren),
SingleUser (Einzelbenutzermodus) und
DBOUseOnly (Nur für DBO).
Auswerten der Datenbankeinstellung über das
DBFile
-Objekt
Sub DBInfo()
Dim serv As New SQLDMO.SQLServer
Dim db As New SQLDMO.Database
Dim dbf As New SQLDMO.DBFile
628
BEISPIEL
serv.Connect ".\SQLExpress", "sa", "tom"
With serv.Databases("Buchhaltung").FileGroups("PRIMARY").DBFiles(1)
Debug.Print "Maximalgröße der DB (-1 = unbegrenzt): " & .MaximumSize
Debug.Print "Größe der DB (MB): " & .Size
Debug.Print "autom. Vergrößerung um : " & .FileGrowth & Choose(.FileGrowthType + 1, " MB", " %")
End With
serv.Disconnect
End Sub
Abbildung 10.19 Das Ergebnis im Direktfenster
Verwenden von TSQL
Für den SQL-Profi wenig überraschend, verwenden wir die CREATE DATABASE-Anweisung zum Er-
zeugen neuer Datenbanken.
Die Syntax (vereinfacht):
CREATE DATABASE <datenbankname>
[ ON [PRIMARY][ <filespec> [,...n] ] ]
<filespec> ::=
( [ NAME = logical_file_name, ]
FILENAME = 'os_file_name'
[, SIZE = size]
[, MAXSIZE = { max_size | UNLIMITED } ]
[, FILEGROWTH = growth_increment] ) [,…n]
Bevor Sie vor der Vielfalt der Optionen zurückschrecken, seien Sie beruhigt, mit
CREATE DATABASE abc
haben Sie bereits eine Datenbank auf dem Server erzeugt. Die automatisch eingestellten Optionen: 1 MByte
Größe, 10 Prozent automatische Vergrößerung, unbeschränkte Dateigröße.
Aufruf aus einem Access-Programm heraus (ACCDB/MDB):
Dim conn As New ADODB.Connection
conn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;DATA SOURCE = .\SQLExpress"
conn.Execute "CREATE DATABASE abc"
629
Praktisches Arbeiten mit dem SQL Server

Get Microsoft Office Access 2007-Programmierung - Das Handbuch now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.