Hallo,
Habe mir eine Batchdatei gebastelt:
@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:
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:
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