Seite 1 von 1

SQL-Befehl als Variable definieren

Verfasst: 21.07.2005 23:59
von HoDam
Beispiel

Die SQL - Abfrage:
If DatabaseQuery("Select MfgProductName from Master where " + ColorName.s + " ='"+selKollek+"' And " + ColorNumber.s + "='"+selFarbton+"'order by MFGProductName desc;")

funktioniert.

Jetzt möchte ich diese Abfragesequenz als Variable definieren

SQL3.s="Select MfgProductName from Master where " + ColorName.s + " ='"+selKollek+"' And " + ColorNumber.s + "='"+selFarbton+"'order by MFGProductName desc;"

und somit die eigentliche Abfrage verkürzen.

If DatabaseQuery( SQL3)

Jetzt bekomme beim compilieren bei der Variablendefinition eine Fehlermeldung: das Strings und Zahlen nicht gemischt werden dürfen.

Ok, ist ja berechtigt, allerdings erkenne ich nicht, was daran falsch ist.

Vielleicht hat ja jemand eine Idee woran es liegen könnte.

Debug SQL3 bringt nix, da hier ja schon ein fehelr entsteht und das Programm angehalten wird

Andere SQL-Abfragen, die ich als Variable definiert habe funktionieren


Dankeschön


:roll:

Verfasst: 22.07.2005 00:39
von jear
@HoDam
Wenn Du einen Variablennamen festlegst und ihm den Typ "String" gibst, kannst Du das mit dem Suffix .s tun. Beim Gebrauch der Variablen ist das Anhängen des .s aber verwirrend und überflüssig.

Die Frage ist aber, welchen Typ Du für die Variablen selKollek oder selFarbton festgelegt hast. Sind das denn auch Strings?
Nur dann kannst Du sie auch so einfach zu einem großen String zusammenbauen. Wenn es allerdings normale Integervariablen sind, dann musst Du sie beim Zusammenbauen des Strings mit str() zum String umwandeln.

Verfasst: 22.07.2005 11:59
von PAMKKKKK
@HoDam

Leider wandelt PureBasic Nummerische Variablen nicht Automatisch in Strings, wenn man es so benutzt wie du.

Nummerische Variablen müssen vom Programmierer in Strings gewandelt werden.

Beispiel:

Code: Alles auswählen

Wrort.s =  str(selKollek)
Die umgedrete Wandlung (also Strings zu Zahlen) geht so:
Val(StringMitZahlen)

Code: Alles auswählen

Nummer.s = "12345"
Ergebnis.l = 12 + Val(Nummer)
Deine SQL abfrage müsste dann so aussehen.

Code: Alles auswählen

SQL3.s="Select MfgProductName from Master where " + ColorName.s + " ='"+ str(selKollek) +"' And " + ColorNumber.s + "='"+ str(selFarbton) +"'order by MFGProductName desc;"