Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Sql string (https://www.delphipraxis.net/153464-sql-string.html)

arcon 4. Aug 2010 07:08

Datenbank: mssql • Version: 2005 • Zugriff über: ...

Sql string
 
Guten Morgen miteinander,

ich baue in meinem vba-script eine verbindung zu einer datenbank auf .. und möchte nun gerne eine neue datenbank anlegen, wenn diese noch nicht angelegt worden ist. habe das ganze auch schon im mssql-editor getestet und funktioniert einwandfrei .. wenn ich das ganze jedoch in vba schreibe .. und das ganze als string an die variable SQL" übergebe.. bringt der mir gleich am anfang den fehler .. "incorrect syntax near 'GO'"

was ich von anfang an ausschließen kann .. ist.. dass mir die authorisierungsrechte fehlen .. ich selber bin admin

weiß rein zufällig jemand rat ?

hier der code ..

Code:
Cn.ConnectionString = "Provider=SQLOLEDB.1;" & _
"Data Source=cobw6872;" & _
"Initial Catalog=Master;" & _
"Integrated Security=SSPI"
 
Set conn = CreateObject("ADODB.Connection")
conn.Open Cn
   
MsgBox "Verbindung aufgebaut"
SQL = ("USE Master " _
        & " GO " _
        & " IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'kunde') " _
        & " DROP DATABASE [kunde]" _
        & " CREATE DATABASE [kunde] ON (NAME = N'kunde'," _
        & " Filename = N 'C:\Projects\Databases\kunde.MDF' ," _
        & " SIZE = 5," _
        & " FILEGROWTH = 10%)" _
        & " LOG ON (NAME = N'kunde_Log'," _
        & " Filename = N 'C:\Projects\Databases\kunde_Log.LDF' ," _
        & " SIZE = 5," _
        & " FILEGROWTH = 10%)" _
        & " USE kunde" _
        & " GO")
MsgBox SQL
conn.Execute (SQL)
danke für eure mithilfe !

omata 4. Aug 2010 13:00

AW: Sql string
 
Der Query-Analyser führt mehrere Befehle nacheinander aus. Das geht so aber nicht aus Delphi oder VBA heraus. Dort kann immer nur ein Befehl mit Execute ausgeführt werden. Alternativ kannst du ja mal versuchen aus den vielen Einzelbefehlen einen Befehl zumachen, indem du alles in ein SQL-Execute packst...
SQL-Code:
SQL = "EXECUTE('" & Replace(SQL, "'", "''") & "')"

sniper_w 10. Aug 2010 10:00

AW: Sql string
 
"incorrect syntax near 'GO'"
....weil GO kein SQL-Statement ist.
Du musst das ganze Script zerlegen, mit "GO"´s splitten.
Dann sieht es in etwa so aus:
Code:
sql = "USE Master "
' sql ausführen
sql = "IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'kunde') " _
        & " DROP DATABASE [kunde]"
' sql ausführen
sql = "CREATE DATABASE [kunde] ON (NAME = N'kunde'," _
        & " Filename = N 'C:\Projects\Databases\kunde.MDF' ," _
        & " SIZE = 5," _
        & " FILEGROWTH = 10%)" _
        & " LOG ON (NAME = N'kunde_Log'," _
        & " Filename = N 'C:\Projects\Databases\kunde_Log.LDF' ," _
        & " SIZE = 5," _
        & " FILEGROWTH = 10%)"
' sql ausführen
sql = "USE kunde"
' sql ausführen


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz