Variablen in einem SQL Query nutzen?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Autonomus
Beiträge: 30
Registriert: 20.02.2015 18:21

Variablen in einem SQL Query nutzen?

Beitrag von Autonomus »

Hallo,

meine Frage steht im Thema: Wie kann man Variablen in einem SQL Query nutzen?
Hab es weder selbst heraus gefunden, mit der Boardsuche nicht gefunden und die Hilfe dazu liefert leider auch nicht das gewünschte Ergebnis.

Hier ein Beispiel was ich genau brauche:

Code: Alles auswählen

CheckDatabaseUpdate(0, "INSERT INTO food (name, weight) VALUES ('apple', '10')")
Anstelle von "name" möchte ich eine Variable einsetzen.

Grüße
[Aktuelles Projekt: Core Project | Media Library (Core Project based)]
  • OS: Windows 7 Ultimate x64 | PB: PureBasic 5.40 x86/x64

    CPU: AMD Phenom(TM) II X4 965 BE (4x 3.4GHz @3.8GHz) | GPU: nVidia GeForce 8200 (512MB), nVidia GeForce GT 730 (4096MB)
    RAM: 8GB | HDD: 250GB Samsung, 1TB Samsung
RSBasic
Admin
Beiträge: 7880
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Variablen in einem SQL Query nutzen?

Beitrag von RSBasic »

Code: Alles auswählen

Define DeinStringfuerName$ = "name"
CheckDatabaseUpdate(0, "INSERT INTO food (" + DeinStringfuerName$ + ", weight) VALUES ('apple', '10')")
BildBildBildBild BildBild
Autonomus
Beiträge: 30
Registriert: 20.02.2015 18:21

Re: Variablen in einem SQL Query nutzen?

Beitrag von Autonomus »

Keine Ahnung wieso ich mal wieder im Wald stand (Wald vor lauter Bäume nicht sehen), aber super.

Funktioniert! Danke! :allright:
[Aktuelles Projekt: Core Project | Media Library (Core Project based)]
  • OS: Windows 7 Ultimate x64 | PB: PureBasic 5.40 x86/x64

    CPU: AMD Phenom(TM) II X4 965 BE (4x 3.4GHz @3.8GHz) | GPU: nVidia GeForce 8200 (512MB), nVidia GeForce GT 730 (4096MB)
    RAM: 8GB | HDD: 250GB Samsung, 1TB Samsung
Benutzeravatar
TroaX
Beiträge: 521
Registriert: 08.03.2013 14:27
Wohnort: ERB

Re: Variablen in einem SQL Query nutzen?

Beitrag von TroaX »

Autonomus hat geschrieben:Keine Ahnung wieso ich mal wieder im Wald stand (Wald vor lauter Bäume nicht sehen), aber super.

Funktioniert! Danke! :allright:
Vielleicht, weil du sowas erwartet hattest?

Code: Alles auswählen

"INSERT INTO food (name, weight) VALUES ($VARIABLE, '10')")
Ich kenne das Problem :D
PC: AMD Ryzen 9 3950X | 64 GB RAM | RTX 3060 TI | 2,5 TB NVMe SSD | 2 TB SATA SSD | WIN 10 | 3x FHD Display
Mobil: AMD Ryzen 7 4800H | 16 GB RAM | GTX 1650 TI | 1 TB NVMe SSD | Win 10
Server: MSI Cubi N | Pentium Silver N5000 | 8 GB RAM | 1 TB HDD | Debian/Yunohost + Nextcloud
Programmierung: PureBasic | B4J | B4A | PHP | Python
RSBasic
Admin
Beiträge: 7880
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Variablen in einem SQL Query nutzen?

Beitrag von RSBasic »

TroaX hat geschrieben:Vielleicht, weil du sowas erwartet hattest?
Oder:

Code: Alles auswählen

CheckDatabaseUpdate(0, "INSERT INTO food (' + DeinStringfuerName$ + ', weight) VALUES ('apple', '10')")
BildBildBildBild BildBild
Benutzeravatar
Bisonte
Beiträge: 2382
Registriert: 01.04.2007 20:18

Re: Variablen in einem SQL Query nutzen?

Beitrag von Bisonte »

Ähem ... Finde es etwas seltsam, einfach so Tabellenfeldnamen variabel machen zu wollen.
Ein Datenbank ist in der Struktur doch eigentlich "fest"...

Sinnvoller wäre es die "Values" variabel zu machen. Da bietet PB auch gleich was an :

Code: Alles auswählen

SQL.s = "INSERT INTO food (name, weight) VALUES (?, ?)" ; Erstes Fragezeichen ist Index Nr. 0 !

SetDatabaseString(0, "apple") ; Hier erstes Fragezeichen
SetDatabaseLong(1, 10) ; Hier zweites Fragezeichen

CheckDatabaseUpdate(0, SQL) 
PureBasic 5.72 LTS (Windows x86/x64) | Windows10 Pro x64 | Z370 Extreme4 | i7 8770k | 64GB RAM | iChill GeForce RTX 2080 Super | HAF XF Evo​​
Autonomus
Beiträge: 30
Registriert: 20.02.2015 18:21

Re: Variablen in einem SQL Query nutzen?

Beitrag von Autonomus »

Es ging mir explizit um die VALUES, richtig.

Nicht weil ich es erwartet habe, sondern haben mich die ' VALUE ' irritiert, da sonst " VALUE " verwendet wird.
[Aktuelles Projekt: Core Project | Media Library (Core Project based)]
  • OS: Windows 7 Ultimate x64 | PB: PureBasic 5.40 x86/x64

    CPU: AMD Phenom(TM) II X4 965 BE (4x 3.4GHz @3.8GHz) | GPU: nVidia GeForce 8200 (512MB), nVidia GeForce GT 730 (4096MB)
    RAM: 8GB | HDD: 250GB Samsung, 1TB Samsung
Benutzeravatar
mk-soft
Beiträge: 3287
Registriert: 24.11.2004 13:12
Wohnort: Germany

Re: Variablen in einem SQL Query nutzen?

Beitrag von mk-soft »

Ist schon etwas älter, wird immer noch gerne genommen...

Format like sprintf: https://www.purebasic.fr/english/viewto ... 12&t=32026

Code: Alles auswählen

name.s = "Apple"
weight.f = 100.5
SQL.s = format("INSERT INTO food (name, weight) VALUES ('%s', %.3f)", @name, @weight)
Debug SQL
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.7x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf My Webspace
Antworten