tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
1773
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    GartenUmgraben GartenUmgraben ist offline Mitglied Gold
    Registriert seit
    May 2005
    Beiträge
    108
    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 :
    1
    2
    3
    4
    5
    6
    7
    8
    
     
    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'
     

  2. #2
    Avatar von Turri
    Turri Turri ist gerade online Mitglied Brokat
    Registriert seit
    Jun 2005
    Beiträge
    354
    Hallo,

    schreib doch mal:

    Code :
    1
    
    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
     

  3. #3
    Supa Supa ist offline Mitglied Gold
    Registriert seit
    Jul 2004
    Ort
    Velbert
    Beiträge
    160
    versuch mal:
    Code :
    1
    2
    3
    
    String id = "1";
     
    DBQuery->SQL->Add( "Insert into Person(id, name) values("+ id+ ", 'Hans')" );
     
    noch 'n bischen Werbung in eigener Sache: www.ice-only.de

  4. #4
    GABehnke GABehnke ist offline Mitglied Bronze
    Registriert seit
    Jan 2004
    Ort
    Hamburg
    Beiträge
    38
    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
     

Ähnliche Themen

  1. Invalid pointer
    Von Underscore im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 10.09.09, 09:05
  2. [c++] Pointer auf konstanten Pointer-Parameter setzen
    Von digitalFreeman im Forum C/C++
    Antworten: 4
    Letzter Beitrag: 18.02.09, 11:11
  3. Antworten: 4
    Letzter Beitrag: 07.07.06, 13:34
  4. Antworten: 1
    Letzter Beitrag: 22.12.05, 09:27
  5. Antworten: 6
    Letzter Beitrag: 02.11.03, 21:23