Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Variable aus Batchdatei an MySQL Query übergeben...

Frage Entwicklung Datenbanken

Mitglied: solaris-ch

solaris-ch (Level 1) - Jetzt verbinden

21.02.2008, aktualisiert 20:57 Uhr, 12414 Aufrufe, 6 Kommentare

Hallo zusammen. Habe mich vor der Anmeldung lange in diesem Forum umgeschaut und auch etliche Zeit "gegoogelt" aber leider nichts passendes Gefunden für mein Problem.

Folgende Ausgangslage:

MySQL 5.0
Windows XP Prof

- anhand eines Batchfiles werden durch den User 2 Variablen definiert. Nennen wir diese
01.
plz_von
und
01.
plz_bis
- das Batchfile öffnet eine MySQL - Instanz und führt den Query "GET_CUST.sql" aus.

Nun mein Problem:

Wie schaffe ich es, dass die zuvor im Batchfile definierten Variablen im SQL Script verwendet werden können?
Ich freue mich sehr über jegliche Art von Anregungen, Tips und Tricks!

Beste Grüsse aus Helvetien ;)
Mitglied: nomax
21.02.2008 um 08:16 Uhr
was meinst du mit variablen?
du redest von den attributen "plz_von" u "plz_bis" oder?

poste doch bitte mal das ganze batchfile.
vl kann ich dir weiter helfen
Bitte warten ..
Mitglied: solaris-ch
21.02.2008 um 08:26 Uhr
Hi!

Sorry, wenn ich mich undeutlich ausgedrückt habe.
Anbei der ganze Code.

Was ich möchte ist, die gesetzten Variabeln welche in Zeile 3 und 4 gespeichert werden, an das SQL Script "GENERATE_KML.sql" übergeben, da die Variabeln darin verwendet werden sollen.


01.
@ ECHO OFF 
02.
echo Geben Sie den gewünschten PLZ Bereich ein! 
03.
set /p plz_von="PLZ von eingeben: " 
04.
set /p plz_bis="PLZ bis eingeben: " 
05.
 
06.
echo Der gewählte Bereich ist: %plz_von% bis %plz_bis% 
07.
pause 
08.
 
09.
ECHO Please wait while gathering data... 
10.
C:\SOLARIS\bin\mysql.exe -u DBUSER -h localhost DBNAME  --password=XXXXXX < SQL\GENERATE_KML.sql 
11.
del G:\project\Google_map\NEW_GOOGLE\OUTPUT\OUTPUTOLD.kml 
12.
rename G:\project\Google_map\NEW_GOOGLE\OUTPUT\OUTPUTNEW.kml OUTPUTOLD.kml 
13.
move  C:\OUTPUTNEW.kml	G:\project\Google_map\NEW_GOOGLE\OUTPUT 
14.
ECHO FINISHED. Press any key to close this window! 
15.
 
16.
pause
Besten Dank für Deine Hilfe!
Bitte warten ..
Mitglied: MadMax
21.02.2008 um 13:32 Uhr
Hallo solaris-ch,

mir fallen da zwei Möglichkeiten ein:
1. die komlette Abfrage wird in der Batchdatei aufgebaut, also
01.
... 
02.
echo select Spalten from Tabelle where PLZ between '%plz_von%' and '%plz_bis%'> GET_CUST.sql 
03.
...

2. in der SQL-Abfrage GET_CUST.sql werden Variablen verwendet, die dann in der Batchdatei deklariert und zugewiesen werden und dann zusammenkopiert. Das Vorgehen könnte interessant sein, wenn die Abfrage etwas komplexer ist.

Abfrage GET_CUST.sql
01.
select Spalten from Tabelle where PLZ between @plz_von and @plz_bis
Batchdatei
01.
... 
02.
echo declare @plz_von varchar (10), @plz_bis varchar (10)> GET_CUSTtmp.sql 
03.
echo set @plz_von = '%plz_von%', @plz_bis = '%plz_bis%'>> GET_CUSTtmp.sql 
04.
copy GET_CUSTtmp.sql + GET_CUST.sql GET_CUSTtmp.sql 
05.
...
Gruß, Mad Max
Bitte warten ..
Mitglied: solaris-ch
21.02.2008 um 13:53 Uhr
Hi Mad Max

ich finde Deinen Ansatz sehr gut. Hab das jetzt mal stinkfrech eingebaut.
Leider scheint das nicht zu funzen. Muss ich das 'Haupt' SQL Script nicht noch irgendwie dazu bringen, die Variabeln zu laden?

Jetzt sieht das ganze folgendermassen aus.

Batch File:
01.
@ECHO OFF 
02.
 
03.
echo Geben Sie den gewünschten PLZ Bereich ein! 
04.
set /p plz_von="PLZ von eingeben: " 
05.
set /p plz_bis="PLZ bis eingeben: " 
06.
 
07.
 
08.
echo declare @plz_von varchar (10), @plz_bis varchar (10)> GET_CUSTtmp.sql 
09.
echo set @plz_von = '%plz_von%', @plz_bis = '%plz_bis%'>> GET_CUSTtmp.sql 
10.
copy GET_CUSTtmp.sql + GET_CUST.sql GET_CUSTtmp.sql 
11.
 
12.
 
13.
echo Der gewählte Bereich ist: %plz_von% bis %plz_bis% 
14.
echo Bitte warten Sie, während die gewünschten Daten generiert werden. 
15.
 
16.
C:\SOLARIS\bin\mysql.exe -u root -h localhost solaris  --password=pwtta5a9 < SQL\GENERATE_KML.sql 
17.
del G:\project\Google_map\NEW_GOOGLE\OUTPUT\OUTPUTOLD.kml 
18.
rename G:\project\Google_map\NEW_GOOGLE\OUTPUT\OUTPUTNEW.kml OUTPUTOLD.kml 
19.
move  C:\OUTPUTNEW.kml	G:\project\Google_map\NEW_GOOGLE\OUTPUT 
20.
echo Bitte aktualisieren Sie nun im Google Earth den Netzwerklink (Rechte Maustaste, Menupunkt 'Aktualisieren'...  
21.
 
22.
pause
und hier das SQL File:
01.
WHERE			 a.CUSTOMERID = b.CUSTOMERID 
02.
				AND a.STATUS  = 'Active' 
03.
				AND c.PLZ         BETWEEN @plz_von AND @plz_bis 
04.
				AND b.POSTALCODE = c.PLZ
kann es hier leider nicht so schön darstellen, sorry.

Das durch Deinen Beitrag erzeugte temporäre SQL File wird erstellt.
Leider werden die Variabeln wie gesagt nicht an das GENERATE_KML.sql Script übergeben. --> Sorry habe im ersten Post den falschen Scriptnamen verwendet ;)

Besten Dank und Gruss
Bitte warten ..
Mitglied: solaris-ch
21.02.2008 um 14:21 Uhr
Hey Mad Max

sorry! Habs geschafft! Musste Deine Anregungen nur noch ein wenig umbauen.
Für die Nachwelt poste ich hier den Lösungsweg wie man eine Variable aus einem MS DOS Batch File an ein MySQL Query übergibt...:

Hier der Code des Batchfiles:
01.
@ECHO OFF 
02.
 
03.
echo Geben Sie den gewünschten PLZ Bereich ein! 
04.
set /p plz_von="PLZ von eingeben: " 
05.
set /p plz_bis="PLZ bis eingeben: " 
06.
 
07.
 
08.
echo set @plz_von = '%plz_von%', @plz_bis = '%plz_bis%';> GET_CUSTtmp.sql 
09.
copy GET_CUSTtmp.sql + SQL\GENERATE_KML.sql SQL\GENERATE_KMLtemp.sql 
10.
 
11.
 
12.
echo Der gewählte Bereich ist: %plz_von% bis %plz_bis% 
13.
echo Bitte warten Sie, während die gewünschten Daten generiert werden. 
14.
 
15.
C:\SOLARIS\bin\mysql.exe -u root -h localhost solaris  --password=pwtta5a9 < SQL\GENERATE_KMLtemp.sql 
16.
del G:\project\Google_map\NEW_GOOGLE\OUTPUT\OUTPUTOLD.kml 
17.
rename G:\project\Google_map\NEW_GOOGLE\OUTPUT\OUTPUTNEW.kml OUTPUTOLD.kml 
18.
move  C:\OUTPUTNEW.kml	G:\project\Google_map\NEW_GOOGLE\OUTPUT 
19.
echo Bitte aktualisieren Sie nun im Google Earth den Netzwerklink (Rechte Maustaste, Menupunkt 'Aktualisieren'...  
20.
 
21.
pause
und hier die code snippets des SQL Scriptes:
01.
WHERE					a.CUSTOMERID	=	b.CUSTOMERID 
02.
				AND		a.STATUS			=	'Active' 
03.
				AND		c.PLZ	BETWEEN	@plz_von	AND	@plz_bis 
04.
				AND		b.POSTALCODE	=	c.PLZ
Besten, besten Dank an Mad Max, ohne Ihn wäre die Lösung erst gar nicht möglich gewesen!

Grüsse aus Helvetien, solaris
Bitte warten ..
Mitglied: MadMax
21.02.2008 um 20:57 Uhr
Na, mit dem falschen Namen im ersten Beitrag konnte ich ja nicht rechnen

Aber freut mich, daß es letztendlich doch hingehauen hat.

Gruß, Mad Max
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
CMD-Ergebnis in Variable speichern und diese Variable dann andere Batchdatei übergeben
Frage von torilloBatch & Shell6 Kommentare

Hallo Forum, ich habe ein Problem mit der Übergabe einer Variable von einer in eine andere Batchdatei und würde ...

PHP
MySQL Query funktioniert nicht
gelöst Frage von JeeroyPHP1 Kommentar

Hallo, hätte eine Frage zu MySQL Abfragen. Zur Schilderung meines Problems: ich habe 2 Tabellen (person & stadt): Jetzt ...

Batch & Shell
2 Spalten einer CSV per Batch in Variable auswerten und an MSSQL-Query übergeben
Frage von chgs2011Batch & Shell25 Kommentare

Hallo, ich habe eine primitive CSV-Datei, die ich gerne auswerten würde (Spaltentrenner ";"). Die CSV hat beliebig viele Zeilen, ...

PHP
MySQL Daten zu Javascript übergeben
gelöst Frage von AirbastlPHP6 Kommentare

Ich stehe gerade etwas auf dem Schlauch, aber vlt. fällt dem ein oder anderen das Problem gleich auf. Die ...

Neue Wissensbeiträge
Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 2 StundenLinux12 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 1 TagHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Heiß diskutierte Inhalte
Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux12 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Windows 10
Alle Programme mit bestimmtem Namen automatisch (per GPO) deinstallieren
gelöst Frage von lordofremixesWindows 1012 Kommentare

Hallo zusammen, gibt es eine Möglichkeit, alle Programme beginnend mit z.B. "Dell" im Namen per Script und somit per ...