AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sql string

Ein Thema von arcon · begonnen am 4. Aug 2010 · letzter Beitrag vom 10. Aug 2010
Antwort Antwort
arcon

Registriert seit: 8. Jun 2010
71 Beiträge
 
#1

Sql string

  Alt 4. Aug 2010, 08:08
Datenbank: mssql • Version: 2005 • Zugriff über: ...
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 !
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Sql string

  Alt 4. Aug 2010, 14:00
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 = "EXECUTE('" & Replace(SQL, "'", "''") & "')"
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Sql string

  Alt 10. Aug 2010, 11:00
"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
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 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