Hallo alle zusammen,
<br>
ich möchte mir anhand meines Programms ein Batch-File, sowie ein Sql-File generieren und anschließend das erzeugte Sql-File als Input-File für das Kommando "osql" in dem Batch-File zur Verfügung stellen.
<br>
Ich erzeuge mit folgendem Code die zwei Dateien "attachDB.sql" und "setup.bat":
<br>
AttachAtpDBFile = File.CreateText(.. + "attachDB.sql");
AttachAtpDBFile.AutoFlush = true;
AttachAtpDBFile.WriteLine("CREATE DATABASE {0}", DatabaseName);
AttachAtpDBFile.WriteLine("ON PRIMARY (FILENAME = '{0}')", AtpMdfFilePath);
AttachAtpDBFile.WriteLine("FOR ATTACH");
AttachAtpDBFile.WriteLine("go");
AttachAtpDBFile.WriteLine("USE ATP");
AttachAtpDBFile.WriteLine("go");
AttachAtpDBFile.Close();
<br>
SetupBatchFile = File.CreateText(.. + "setup.bat");
SetupBatchFile.AutoFlush = true;
SetupBatchFile.WriteLine("@echo off");
SetupBatchFile.WriteLine("scm.exe -Action 1 -Silent 1 -Service MSSQLServer");
SetupBatchFile.WriteLine(@"osql -E -i {0} > c:\log.txt", .. + "attachDB.sql");
SetupBatchFile.WriteLine("@echo on");
SetupBatchFile.Close();
<br>
Anschließend führe ich das Batch-File mit folgendem Code aus:
<br>
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents=false;
proc.StartInfo.FileName=.. + "setup.bat";
proc.StartInfo.Arguments="";
proc.Start();
proc.WaitForExit();
<br>
Das Problem ist jetzt leider nur, dass das Batch-File ausgeführt wird, jedoch von osql die folgende Fehlermeldung erhalte:
<br>
Eingabedatei attachDB.sql kann nicht ge”ffnet werden
Datei oder Verzeichnis nicht vorhanden
<br>
Wenn ich das Batch-File nach der fehlerhaften Abarbeitung des Programms manuell ausführe, wird die Datenbank korrekt erzeugt (also die Datei attachDB.sql wird dann gefunden)!
<br>
Weiß jemand was ich falsch mache, bzw. was ich evtl. noch beachten muss?
<br>
Mit freundlichen Grüßen
<br>
David R.
<br>
ich möchte mir anhand meines Programms ein Batch-File, sowie ein Sql-File generieren und anschließend das erzeugte Sql-File als Input-File für das Kommando "osql" in dem Batch-File zur Verfügung stellen.
<br>
Ich erzeuge mit folgendem Code die zwei Dateien "attachDB.sql" und "setup.bat":
<br>
AttachAtpDBFile = File.CreateText(.. + "attachDB.sql");
AttachAtpDBFile.AutoFlush = true;
AttachAtpDBFile.WriteLine("CREATE DATABASE {0}", DatabaseName);
AttachAtpDBFile.WriteLine("ON PRIMARY (FILENAME = '{0}')", AtpMdfFilePath);
AttachAtpDBFile.WriteLine("FOR ATTACH");
AttachAtpDBFile.WriteLine("go");
AttachAtpDBFile.WriteLine("USE ATP");
AttachAtpDBFile.WriteLine("go");
AttachAtpDBFile.Close();
<br>
SetupBatchFile = File.CreateText(.. + "setup.bat");
SetupBatchFile.AutoFlush = true;
SetupBatchFile.WriteLine("@echo off");
SetupBatchFile.WriteLine("scm.exe -Action 1 -Silent 1 -Service MSSQLServer");
SetupBatchFile.WriteLine(@"osql -E -i {0} > c:\log.txt", .. + "attachDB.sql");
SetupBatchFile.WriteLine("@echo on");
SetupBatchFile.Close();
<br>
Anschließend führe ich das Batch-File mit folgendem Code aus:
<br>
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents=false;
proc.StartInfo.FileName=.. + "setup.bat";
proc.StartInfo.Arguments="";
proc.Start();
proc.WaitForExit();
<br>
Das Problem ist jetzt leider nur, dass das Batch-File ausgeführt wird, jedoch von osql die folgende Fehlermeldung erhalte:
<br>
Eingabedatei attachDB.sql kann nicht ge”ffnet werden
Datei oder Verzeichnis nicht vorhanden
<br>
Wenn ich das Batch-File nach der fehlerhaften Abarbeitung des Programms manuell ausführe, wird die Datenbank korrekt erzeugt (also die Datei attachDB.sql wird dann gefunden)!
<br>
Weiß jemand was ich falsch mache, bzw. was ich evtl. noch beachten muss?
<br>
Mit freundlichen Grüßen
<br>
David R.
Comment