DBGrid auslesen - ShowMessage klapt, AnsiString nicht



  • ich stehe kurz vor dem PC aus dem Fenster schmeisen 😞

    ich möchte ein Werte aus einem DBGrid auslesen und in ein AnsiString speichern.

    case 8:
       ShowMessage(DBGrid->Fields[iCounter]->AsString);
       asEMail = DBGrid->Fields[iCounter]->AsString;
    break;
    

    Das komische dabe ist, das ShowMessage klapt super, aber beim versuch den Text in den AnsiString zu speichern kriege ich immer einen "EAccessViolation".

    Falls es etwas zu sache tut, ich benutze eine Firebird embedded DB, BCB6 pro und die Interbase Komponenten.

    hat jemand irgend ne idee, an was das liegen könnte?
    währe dankbar

    schonmal thx
    BigNeal



  • Seltsamer Fehler. Ist das bei allen Fields so, oder nur bei dem einen?
    Hast Du spasseshalber mal versucht über die Datenquelle zu gehen?



  • danke für dein Antwort.
    habe mal etwas weiter getestet

    case 8:
    //asEMail = "hallo";        //Fehler
    if(DBGrid->Fields[iCounter]->AsString != "")
    {
       ShowMessage(DBGrid->Fields[iCounter]->AsString);
       asTEst = DBGrid->Fields[iCounter]->AsString;
       ShowMessage("Test:   "+asTEst);            // klapt bis hier hin
       //asEMail = DBGrid->Fields[iCounter]->AsString;     // Fehler
       asEMail = DBGrid->DataSource->DataSet->Fields->FieldByName("e-mail")->AsString;      // Fehler
       ShowMessage("eMail:  "+asEMail);
    }
    break;
    

    liegt also nicht am DB auslesen.
    werde mal weiter forschen

    mfg
    BigNeal



  • Sehe ich das richtig? Die Zuweisung asEMail = "hallo" bringt schon einen Fehler? Dann ist wohl das AnsiString-Objekt in diesem Kontext nicht gültig. Wo kommt es her?



  • oh man oh man...

    ich habe das ganze in ner Klasse.
    vorhin habe ich einen Codeteil zu testzwecken eingefügt und danach rausgelöscht.
    da habe ich wohl ausversehen den Code mit "Klasse = new TKlasse()" gelöscht 😞

    aber verwunderlich, dass die Exception nur beim ca 10. AnsiString von ca 16 AnsiString-Variabeln aufgetaucht ist. beschreiben, ging alles ohne Fehler.

    schlagt mich, ich habe es verdient 😞

    mfg
    BigNeal

    Edit: trotzdem thx für die hilfe 👍


Anmelden zum Antworten