Invalid Pointer Addition.. wo is denn da n pointer !

GartenUmgraben

Erfahrenes Mitglied
Moin.. ich nutze Borland Builder 6 C++ und hab bissi Code geschrieben. Wenn ich den kompiliere bekomme ich die Fehlemeldung "Invalid Pointer Addition"


Die wichtige Codestelle:

Code:
String id(1);

DBQuery->SQL->Add( 
                               "Insert into Person(id, name) values("
                                + id.c_str()
                                + ", 'Hans')"
                                );

bei "+id.c_str()" meckert er rum. Ich bin verwirrt :/

lass ich das ".c_str()" weg kommt entsprechend

E2094 'operator+' not implemented in type 'AnsiString' for arguments of type 'string'
 
Hallo,

schreib doch mal:

Code:
string id ="1";

Wenn man String mit "groß S" schreib interpretiert der Compiler den glaube als AnsiString und bei AnsiString geht glaube ich die c_str() nicht.

btw. bin mir nicht sicher, hab lange kein Borland mehr programmiert ;)

MfG Turri
 
versuch mal:
Code:
String id = "1";

DBQuery->SQL->Add( "Insert into Person(id, name) values("+ id+ ", 'Hans')" );
 
Du versuchst hier eine Addition von Arrays des Types char.
Vergleichbar mit
String t= "2"+"3"+"4";
Dieses ist nicht möglich. Der Operator + ist für den Typ AnsiString(ist übrigens egal ob Du String oder AnsiString schreibst) nur für AnsiStrings überschrieben.
D.h. wenn Du obiges so schreibst:
String t= "2"+(AnsiString)"3"+(AnsiString)"4";
funktioniert es. In Deinem Fall müsstest Du also folgendes schreiben:
(AnsiString)"Insert into Person(id, name) values("
+ id
+ (AnsiString)","
+ (AnsiString("'Hans')"
);

Gruß
Gerhard
 

Neue Beiträge

Zurück