Wir verwenden einen Makro-Wrapper, um Where Parameter-Funktion zu binden.Fehler: Nicht-Lvalue in unären `& 'in C++
#define bindWhereClause(fieldName, fieldDataType, fieldData) _bindWhereClause(fieldName, fieldDataType, sizeof(fieldData), &fieldData)
void _bindWhereClause(const char *name, int dataType, int dataSize, void *data)
{
// Implementation
}
Database.bindWhereClause("FIRST_NAME", SQL_VARCHAR, name.getFirstName());
Als ich versuchte, das Makro mit einer Funktion als Parameter (wie oben) erhalte ich die Fehlermeldung „Fehler: Nicht-L-Wert in einstelligen` & ‚“ zu nennen.
Ich kann den Makro mit normalen Variablen wie
Database.bindWhereClause("FIRST_NAME", SQL_VARCHAR, firstName);
Wie Aufruf dieses Problem zu beheben? Muss ich Inline-Funktionen anstelle von Makros verwenden?
Schätzen Sie Ihre Hilfe im Voraus.
Danke, Mathew Liju
Ja Caf, ich führe die Abfrage im nächsten Schritt aus. Danke für den Vorschlag, den ich auf diese Weise umgesetzt habe. –