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 dankbarschonmal 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 getestetcase 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 forschenmfg
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
BigNealEdit: trotzdem thx für die hilfe
