Forum: Mikrocontroller und Digitale Elektronik Verwirrung beim C++ Variablen zusammenfügen


von Ms (Gast)


Lesenswert?

Guten Morgen,

ich möchte meinen Arduino auf meinen SQL-Server schreiben lassen, habe 
allerdings plötzlich Probleme den SQL-Query zusammen zubauen..

So geht es:
1
const char* sqlquery = "INSERT INTO arduino.arduino_temperaturen (temp1, temp2) VALUES ('22.0', '25.0')";

Aber ich möchte gerne die Temperaturen nicht "Festgelegt" haben, sonder 
durch Variablen ersetzen:
1
const char* sqlquery = "INSERT INTO arduino.arduino_temperaturen (temp1, temp2) VALUES ('VARIABLE1', 'VARIABLE2')";

könnt ihr mir helfen und sagen, wie ich mehrere "Variablen" 
zusammenfüge, bzw. meine Variablen in die Query ein baue?

Ich bin ehr der PHP- und Assembler-Freak, und habe mit C++ nur 
ausnahmsweise mal kurzzeitig etwas zutun..
Gerne nehme ich auch Lernhilfen (URLs, Dokumentationen usw.) an.

Einen Schönen (Abend) noch,

Ms

von Tom (Gast)


Lesenswert?


von Ms (Gast)


Lesenswert?

Bloß wie wende ich denn das ganze jetzt genau an wenn man fragen darf ?

von PittyJ (Gast)


Lesenswert?

Auf der angegeben Seite ist doch ein Beispiel.
Machst das eben genauso.

Und das Const vor der Zeichenkette weglassen, sie wird jetzt ja 
verändert.

von Fritz (Gast)


Lesenswert?

PittyJ schrieb:
> Und das Const vor der Zeichenkette weglassen, sie wird jetzt ja
> verändert.

Wo denn?

von petar (Gast)


Lesenswert?

Fritz schrieb:
> PittyJ schrieb:
>> Und das Const vor der Zeichenkette weglassen, sie wird jetzt ja
>> verändert.
> Wo denn?
In der Zeile die der TO Ms (Gast) noch schreiben muss.

von Fritz (Gast)


Lesenswert?

petar schrieb:
> Fritz schrieb:
>> PittyJ schrieb:
>>> Und das Const vor der Zeichenkette weglassen, sie wird jetzt ja
>>> verändert.
>> Wo denn?
> In der Zeile die der TO Ms (Gast) noch schreiben muss.

Nein.

Wenn dem so wäre, dann wären const-Variablen eine unheimlich tolle 
Sache:

Liegen einfach im Speicher rum, mit nicht vorhersagbarem Wert.

Denn Initialisieren darf man sie eurer Meinung nach ja nicht. Dabei 
würden sie ja von "uninitialisiert" zu "initialisiert" verändert.

von petar (Gast)


Lesenswert?

@Fritz (Gast)
Das hat hier niemand geschrieben.

von Mark B. (markbrandis)


Lesenswert?

Ms schrieb:
> Ich bin ehr der PHP- und Assembler-Freak

Wie passt n das jetzt zam ;)

So sollte das gehen (nicht getestet), ist übrigens reines C, kein C++.

1
#define SQL_STRINGSIZE 100
2
3
float temperature1 = 22.0;
4
float temperature2 = 25.0;
5
char  sqlquery[SQL_STRINGSIZE];
6
7
snprintf(sqlquery, SQL_STRINGSIZE, "INSERT INTO arduino.arduino_temperaturen (temp1, temp2) VALUES ('%f', '%f')", temperature1, temperature2);

: Bearbeitet durch User
von Klaus B. (Gast)


Lesenswert?

Oder mit concat erst den String zusammensetzen.

von Mark B. (markbrandis)


Lesenswert?

Muss übrigens %.1f heißen anstatt %f wenn man genau eine Nachkommastelle 
haben will.

von sebi707 (Gast)


Lesenswert?

Wenn man schon mit C++ arbeitet kann man auch stringstreams benutzen:
1
#include <sstream>
2
3
...
4
5
std::ostringstream ss;
6
ss << "INSERT INTO arduino.arduino_temperaturen (temp1, temp2) VALUES ('" << temperature1 << "', '" << temperature2 << "')";

Den zusammengesetzten String gibts dann unter ss.str().

von Dr. Sommer (Gast)


Lesenswert?

Und jetzt noch die einfache intuitive Methode:
1
float temperature1 = 3.14, temperature2 = 2.7;
2
std::string query =
3
  std::string("INSERT INTO arduino.arduino_temperaturen (temp1, temp2) VALUES (")
4
  + std::to_string (temperature1) + "', '" + std::to_string (temperature2) + "')";
5
 std::cout << query;

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.