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
Kommentar vom Moderator Biber am 14.03.2010 um 13:29:06 Uhr
De Variablen sind alle mit nvarchar (max) deglariert
Jezz' ist mir doch beim Lesen ein Äderchen geplatzt...

gelöst If Anweisung schlägt fehl

Mitglied: net-tobi

net-tobi (Level 1) - Jetzt verbinden

13.03.2010, aktualisiert 14.03.2010, 3449 Aufrufe, 7 Kommentare

Hallo zusammen

Ich habe ein problem mit einer If-Anweisung, hier schlägt der vergleich fehl.
Als ergebnis bekomme ich immer false.

Nun aber zu den Fakten damit ihr hier nicht in die Glaskugel schauen müsst.

Die Datenbank läuft auf einen SQL Server 2005 und die Management Console.
Ich schreibe auch hier die Abfrage. Ziel der Abfrage ist es aus 3 Tabellen 2 Variablen zu füllen die dann Verglichen werden sollen über die If anweisung.
Wenn die beiden Variblen gleich sind soll ein Zähler hochgezählt werden.

Die erste Tabelle durchlaufe ich mit einem cursor und hole mir ein Objekt, mit diesen suche ich dann in den anderen beiden Tabellen und fülle die beiden Variablen. Nennen wir sie V1 und V2


Die Anweisung lautet wie folgt:

IF V1 = V2
@zaehler = @zaehler +1

Der Zähler soll dann am schluss das Ergebnis mit den gleichen Datensätzen anzeigen.

Das füllen der Variablen klappt problemlos. Nur an der If Anweisung verzeiflich langsam. Denn egal wie die Variablen sind hält das Script sie immer für ungleich.
De Variablen sind alle mit nvarchar (max) deglariert so sind diese auch in den Tabellen hinterlegt.

Wenn ich mir die Variablen anzeigenlasse, über die Print Anweisung dann sieht es so aus.
SR SR,
GF GU,
0 Datensätze (Das ergebnis des Vergleiches)

Machen die Kommas was aus? Habe aber auch schon für V1 ein komma mit dazugeschrieben? beispiel: (@V1 = @V1 + ',' )
Oder liegt es evtl. an der Variablendeklartion?

Ich weiß leider nicht mehr wo ich ansetzen soll. Kenn mich in der VBA Programmierung einigermaßen aus und habe auch schon mit Access gearbeitet. Mit T-SQL habe ich erst angefangen.

Ich hoffe ihr könnt mir helfen.
Danke im voraus
net-tobi
Mitglied: filippg
13.03.2010 um 15:56 Uhr
Hallo,

wenn V1 und V2 Variablen sind sollte man wohl ein @ davor setzen. Und für die Zuweisung wäre ein SET wahrscheinlich nicht verkehrt.
IF @V1 = @V2
SET @zaehler = @zaehler + 1


http://msdn.microsoft.com/de-de/library/ms182717.aspx
http://msdn.microsoft.com/en-us/library/ms189484.aspx

Gruß

Filipp
Bitte warten ..
Mitglied: net-tobi
13.03.2010 um 22:10 Uhr
Hallo Filipp

das war nur ein schreibfehler im orginalcode steht es so wie du geschrieben hast.

Wäre dies nicht wäre das ganze mit einer Fehlermeldung quittiert worden.

Der Code läuft ohne Fehlermeldung durch nur das ich als ergebnis von den Vergleich als Ergebniss immer "false" bekomme und der Zähler übersprungen wird.

Danke trotzdem für den Tipp.
net-tobi
Bitte warten ..
Mitglied: filippg
13.03.2010 um 22:40 Uhr
Hallo,
[edit: Rest wieder gelöscht, aber schreibe das nächste Mal den richtigen Code, wenn du Hilfe zu dem Code haben willst]
Der Code läuft ohne Fehlermeldung durch nur das ich als ergebnis von den Vergleich als Ergebniss immer "false"
Tja... dann wird es vermutlich daran liegen, dass V1 und V2 nicht gleich sind.

Gruß

Filipp
Bitte warten ..
Mitglied: TsukiSan
14.03.2010 um 01:10 Uhr
Halle net-tobi,

irgend etwas muss zwischen (in deinem Beispiel) V1 und V2 abweichen.
Schau dir doch mal testenshalber genau an, welchen Wert V1 und V2 haben und in welchem
Format. Wenn zum Beispiel V1=1.0 hat und V2="1.0" , dann liegt es daran, dass in diesem
Beispiel Äpfel mit Birnen verglichen werden und dann logischerweise ein FALSE zustande
kommt. Auch bitte darauf achten, dass V1 und V2 (wenn schon im gleichen Format) die gleichen
Längen haben [ len(V1) ; len(V2) ] etc.

Fahre deine Script mal Schritt für Schritt durch und schaue nochmals genau nach.
Passiert mir hin und wieder auch mal.

Gruss
Tsuki
Bitte warten ..
Mitglied: net-tobi
14.03.2010 um 10:59 Uhr
Hallo Tuski

Danke für deine Antwort mein Verdacht geht auch schon in diese Richtung werde es mal Probieren und schauen was er mir dann sagt.

Noch eine Frage zu den Variablendeklarationen sind die so in Ordnung es sind max 6 Zeichen die aufgenommen werden müssen oder sollte ich diese besser doch umkonvetieren?

Gruss
net-tobi
Bitte warten ..
Mitglied: TsukiSan
14.03.2010 um 12:08 Uhr
Hallo net-tobi,

deiner Fantasie bezüglich Variablennamen sind kaum Grenzen gesetzt.
Es gibt nur einige Variablennamen, die man nicht verwenden sollte.
Time
Date
Year
Put
Get
etc.
sollten Tabu sein. Aber wenn du dich auf's deutsche beziehst, kannst du die Dinger fast nennen, wie du möchtest.

Gruss
Tsuki
Bitte warten ..
Mitglied: net-tobi
16.03.2010 um 17:41 Uhr
Hallo Tuski

danke nochmal für die Hilfe. Habe das Problem gelöst.

Ich habe es mit der len Funktion gemacht wie du es gesagt hast. Hat zwar am Anfang nicht geklappt warum weiß der Geier.

Aber das Ergebnis wie es dann gehte war das in V1 2 Zeichen waren und in V2 3 Zeichen, also sprich das komma wie ich es schon vermutet hatte.
Kurios an der Sache ist nur wie ich schon oben geschreiben habe, das ich das Komma bei V1 schon mal dazu geschrieben habe und es nicht funktionierte!

Die Lösung also ist dann so Set @V1 = @V1 + ','

Bis dann
net-tobi
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Unix Shell-Script: IF-Anweisung
gelöst Frage von newit1Batch & Shell6 Kommentare

Hallo zusammen, kann ich mit einer IF-Anweisung prüfen, ob in einer lokalen CSV-Datei in der ersten Spalte überall eine ...

Batch & Shell

XMLStarlet Anweisung in For Schleife Verwenden

gelöst Frage von eldorado1Batch & Shell10 Kommentare

Hallo, ich würde gerne die Ausgabe die ich mittels xmlstarlet mit einer Batch Datei erzeuge in einer Variable speicher ...

Batch & Shell

Batch will start Anweisung nicht ausführen

gelöst Frage von zeroblue2005Batch & Shell7 Kommentare

Hallo Zusammen, ich brauche mal Hilfe. Ich habe hier die Batch vom Programm ApcUPS die eine USV steuert! Das ...

PHP

Den Inhalt einer "get"-Anweisung finden, wie

Frage von sbsnewbiePHP2 Kommentare

Moin Leude, könnt Ihr mir mal kurz auf die Sprünge helfen? Wie kann ich den Inhalt einer "get"-Anweisung finden? ...

Neue Wissensbeiträge
Off Topic
Europawahl 2019
Information von Frank vor 2 StundenOff Topic

Vom 23. bis 26. Mai 2019 findet die Europawahl in den Mitgliedstaaten der Europäischen Union statt (ja auch in ...

Humor (lol)

Minister wollen offenbar Ausweispflicht für .de-Domain

Information von Kraemer vor 15 StundenHumor (lol)7 Kommentare

Zitat von Golem.de: Die zuständigen Verbraucherschutzminister fordern einem Medienbericht zufolge offenbar eine Ausweispflicht für .de-Domains. Das soll Betrugsfälle mit ...

Off Topic
Was als Noob hier mal gesagt werden musste
Information von th30ther vor 2 TagenOff Topic5 Kommentare

Moinsen wertes Forum, ich möchte mich an dieser Stelle mal beim Forum generell und bei aqui speziell bedanken! Ich ...

Windows 10
Windows 10 Mai 2019 Update (Version 1903) ist da
Information von kgborn vor 2 TagenWindows 109 Kommentare

Nur ein kurzer Infosplitter: Microsoft hat die Nacht (21. Mai 2019) das Funktionsupdate auf Windows 10 Version 1903 freigegeben. ...

Heiß diskutierte Inhalte
Ausbildung
Wie sind eure Erfahrungen als oder mit Ü30 Azubis für Fachinformatik Systemintegration?
Frage von CaptainProcessorAusbildung24 Kommentare

Tagchen allerseits :) Mir steht in wenigen Monaten eine Veränderung bevor, da mein AG seine IT auslagert und ich ...

LAN, WAN, Wireless
Gleichzeitiger Zugriff übers Netzwerk: SSD vs HDD
gelöst Frage von ahussainLAN, WAN, Wireless20 Kommentare

Hallo, ich möchte in einem Rechner eine zusätzliche SATA-Festplatte einbauen und von dort diverse Ordner übers Netzwerk (Gigabit Ethernet) ...

Netzwerkmanagement
Gateprotect Firewall - Internetseiten werden teilw. nicht geladen
Frage von KivasFNetzwerkmanagement16 Kommentare

Morgen Zusammen, ich habe ein Problem mit einer Gateprotect Firewall welches mir echt Kopfschmerzen bereitet. Die Firewall hängt an ...

Router & Routing
HP 2920 als Router konfigurieren. Bitte um Unterstützung
gelöst Frage von suedi123Router & Routing16 Kommentare

Liebe Forumsmitglieder, ich habe hier ein Problem, bei welchem ich nicht weiterkomme, weil ich mich zu wenig mit der ...