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
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
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')")
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
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: 659
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Pop_OS! | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Pop_OS!
Wohnort: NRW
Kontaktdaten:

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: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Pop_OS!
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Pop_OS!
NAS: Fritz.Box :lol:
Coding: Purebasic 6.04 | PHP | HTML | CSS | Javascript
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
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')")
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
Benutzeravatar
Bisonte
Beiträge: 2427
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 6.04 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
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: 3695
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
Downloads auf MyWebspace / OneDrive
Antworten