Pasar un string a través de sprintf

Hola a todos.

Quiero hacer un INSERT en una base de datos, empleando el resultado de un SELECT como variable, utilizando la librería MySQL Connector Arduino.

El SELECT lo hago sin problemas. Al principio tenía la limitación de que, mientras los ejemplos que proporciona la librería emplea números, mi dato en la base de datos era un VARCHAR. Así que hice:

char query_select[] = "SELECT batchnumber FROM registro.qcInsecta_get ORDER BY id DESC LIMIT 1";
String batchnumber = "";
batchnumber = String(row->values[0]);
Serial.println(batchnumber)

Así que obtengo el número de lote sin problemas. Ahora quiero utilizarlo dentro del INSERT, así que:

char INSERT_DATA[] = "INSERT INTO registro.qcInsecta (batchnumber, weight) VALUES (%s,%s)";
sprintf(query_insert, INSERT_DATA, batchnumber, weight);

No os pongo el código entero porque es largo, y creo que mi atasco está en un problema de concepto. Cuando voy a verificar el código, me dice:

cannot convert 'String' to 'char*' for argument '1' to 'char* strcat(char*, const char*)'

Y aquí estoy atascado, ¿Alguna idea para poder pasar ese string a través de sprintf?

¡Gracias y un saludo!
Alex.

intenta con batchnumber.c_str()

¡Perfecto, gracias!
Ha quedado así:

char INSERT_DATA = “INSERT INTO registro.qcInsecta (batchnumber, weight) VALUES (’%s’,%s)”;
sprintf(query_insert, INSERT_DATA, batchnumber.c_str(), weight);

¡Un saludo!
Alex.

Bueno ahora tu trabaja un poco, y edita esa linea que has puesto usando etiquetas. Aunque sea solo una usa siempre etiquetas. Nada de texto plano!