CodeForum.chCode ForenSQLThema: SQL 2000 - Variable aus Batchdatei
Seiten: [1]
AntwortenDrucken
Autor Thema: SQL 2000 - Variable aus Batchdatei  (Gelesen 1452 mal)
schnurzli
oft hier
*
Offline Offline

Beiträge: 176



« am: 07. September 2007, 08:25:36 »
ZitierenZitat

Hallo,

Habe mir eine Batchdatei gebastelt:

Code:
@echo off
SET /P DBSRV=Server Hostname?
echo .
SET /P DBNAME=Datenbank Name?
echo .
SET /P xlsString=Pfad der Excel Datei(z.B. C:\import\import.xls)?
echo %xlsString%
set /p frage= SQL 2000 oder 2005? (2000 = 1 / 2005 = 2)
if "%frage%"=="1" goto 1
if "%frage%"=="2" goto 2
:1
osql /E /S%DBSRV% /d%DBNAME% /iimportPerson.sql /oimport2000.log
goto ende
:2
sqlcmd /E /S%DBSRV% /d%DBNAME% /iimportPerson.sql /oimport2005.log
goto ende
:ende
pause

wenn ich das sqlcmd aufrufe funktioniert die übergabe im sql script so:

Code:
DECLARE @xlsString as nvarchar(255)
SET @xlsString = '$(xlsString)'

Doch wir bekomme ich eine ähnliche Lösung für einen SQL 2000 Server hin? Da gibt es ja noch kein sqlcmd sondern nur osql. Da erhalte ich aber mit derzeitiger Konf. eine Fehlermeldung:

Code:
1> 2> 3> 4> 5> 6> 7> 8> 9> 10> 11> 12> 13> 14> 15> 16> 17> 18> 19> 20> 21> 22> 23> 24> 25> 26> 27> 28> 29> 30> 31> 32> 33> Meldung '7350', Ebene '16', Status '2', Server 'SERVERNAME', Zeile 1
Die Spalteninformationen k???nnen nicht vom OLE DB-Anbieter
"Microsoft.Jet.OLEDB.4.0" fr den Verbindungsserver "(null)" abgerufen
werden.
Der OLE DB-Anbieter "Microsoft.Jet.OLEDB.4.0" fr den
Verbindungsserver "(null)" hat die Meldung "Das Microsoft
Jet-Datenbankmodul konnte das Objekt 'import$' nicht finden.
Stellen Sie sicher, dass das Objekt existiert und dass die Namens- und
Pfadangaben richtig eingegeben wurden." zurckgeben.

Das liegt daran, dass er mit der ??bergabe des Strings nichts anfangen kann...

LG schnurzli




Moderator informieren   Gespeichert
SuperMario
Globaler Moderator
*
Offline Offline

Beiträge: 2497



« Antworten #1 am: 07. September 2007, 09:43:38 »
ZitierenZitat

Google.de hilft vielleicht. Ich hab einfach nach "osql parameter" gesucht und das hier gefunden:
http://www.exactsoftware.com/docs/BDDocument.asp?Action=View&ID=%7BF0108D5E-FB5C-41C6-81A1-D15455C22FB1%7D

??bergib mal die Parameter nicht mit Slash "/", sondern per Minus-Zeichen, also z.b. -S"Servername". Vielleicht klappts dann.
Moderator informieren   Gespeichert
schnurzli
oft hier
*
Offline Offline

Beiträge: 176



« Antworten #2 am: 07. September 2007, 11:24:56 »
ZitierenZitat

hi, es geht mir nicht allgemein um die parameter, die sind mir allgemein bekannt...

mein problem ist, dass ich eine variable setzte, welche aus dem batchfile in mein sql script weitergegeben werden. unter sqlcmd funktioniert das mit:

im Batch:
Code:
SET /P xlspfad=Pfad eingeben
Somit wird der Pfad eingegeben und eine Variable %xlspfad% übergeben
nun kommt der SQL Code:
Code:
DECLARE @xlsString as nvarchar(255)
SET @xlsString = '$(xlsString)'

So funktioniert die ??bergabe des Strings in mein SQL Statement.
Mein Problem ist, dass zwar das OSQL Statement auch funktioniert, leider die ??bergabe dieses Wertes anscheinend ein wenig anders vor sich geht. Leider konnte ich weder auf Google noch in der MSDN - osql Seite einen Hinweis finden. Kann man Kommandozeilenparameter nicht an OSQL weitergeben?

Moderator informieren   Gespeichert
Seiten: [1]
AntwortenDrucken
CodeForum.chCode ForenSQLThema: SQL 2000 - Variable aus Batchdatei
Gehe zu:  

 

Partner Sites

Werbung

TinyPortal v1.0.5 beta 1© Bloc