SQL-Befehl als Variable definieren

Anfängerfragen zum Programmieren mit PureBasic.
HoDam
Beiträge: 82
Registriert: 19.11.2004 13:57
Wohnort: Köln, Cologne

SQL-Befehl als Variable definieren

Beitrag 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:
Benutzeravatar
jear
Beiträge: 288
Registriert: 17.10.2004 01:59
Wohnort: Ammerland

Beitrag 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.
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!
Benutzeravatar
PAMKKKKK
Beiträge: 321
Registriert: 21.04.2005 22:08
Wohnort: Braunschweig
Kontaktdaten:

Beitrag 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;" 
Wir Schreiben ein PureBasic Buch.
Auch du kannst mitmachen!
http://www.purearea.net/pb/english/pure ... :Main_Page
Antworten