ADOTable Excaption Problem?



  • TADODataset läßt sich wie TADOQuery verwenden....

    Aber da Du schon Query verwendest sollte das eigentlich funktionieren. Sind das alle Felder aus der Tabelle? Wenn noch mehr Felder da sind: Sind davon welche NOT NULL definiert?

    Lass mal die TADOTable ganz weg und nimm statt dessen da auch eine TADOQuery, oder besser noch eine TADODataset.



  • Leider weiß ich über die Datenbank nicht viel, ich greife auf sie per
    ODBC zu und die eigendliche Datenbank ist nicht offen. Aber soweit ich das
    sehe ist das nicht der Fall das die anderen Felder die nicht in der Abfrage
    vorkommen auf NOT NULL gesetzt sind.

    Das mit dem TADOQuerry1 peil ich noch ned. Ich hab jetzt ein:
    ADOConnection1 mit gesetztem ConnectionString
    DataSource1 ohne veränderte Einstellungen im Objektinspektor
    ADOQuery1 mit ADOConnection als Connection und DataSource1 als DataSource
    DBGrid1 mit DataSource1 als DataSource

    So und dann führ ich folgenden Code aus:

    ADOQuery1->SQL->Clear();
    ADOQuery1->SQL->Add("SELECT * FROM Kunde");
    ADOQuery1-> Open();
    ADOQuery1->Active=true;

    Aber im DBGrid wird nix angezeigt was mach ich da falsch??

    MFG

    Maruu


  • Mod

    Hallo

    schau mal mit dem Debugger ob du was zurueckbekommst
    (das active=true kannst du dir sparen
    mit open holst du schon die Daten

    MfG
    Klaus



  • Naja das is mir jetzt peinlich ich kenn mich mit dem Debugger garnicht aus.
    Wie mach ich das?? Hab grad mal geschaut unter Ansicht->Debugger Fenster gibts ein paar sachen aber wie kann ich das kontrollieren??

    MFG

    Maruu



  • in diesem Fall kann dir ein Beitrag der FAQ helfen, schau mal hier http://www.c-plusplus.net/forum/viewtopic.php?t=39305 unter "Debuggen?"



  • Davon abgesehen, sollte das so eigentlich funktionieren... Befinden sich den Datensätze in der Tabelle?



  • Linnea:
    Ok hab jetzt den Beitrag zum Thema debuggen gelesen.
    Aber welches Element muss ich nun genau überwachen??
    Ich meine mit ADOQuery1-> Open(); setze ich ja den Command
    ab und was muss ich dann überwachen, wo wird das Ergebnis
    hingespeichert??

    Joe_M.:
    Jap die Tabelle ist gefüllt. Hab auch schon ne andere probiert,
    bei der wird auch nix angezeigt.

    MFG

    Maruu



  • Versuch doch bitte mal (in einem neuen Projekt):
    Eine TADOConnection und ein TADOQuery und eine TDataSoruce, entsprechend verbunden und konfiguriert...

    In der Eigenschaft SQL der Query trägst Du dann "SELECT * FROM Kunde" ein. Nach einem Doppelklick öffnet sich der Feldeditor, rechte Maustaste -> Alle Felder hinzufügen. Was passiert?



  • Leider bin ich gerade an der FH!
    Ich werds aber gleich heute Abend ausprobieren wenn ich heim komme.

    Gruß

    Maruu



  • Hi!

    Also ich hab jetzt das Problem. Es muss irgendeinen Fehler gegeben
    haben beim erstellen des DataSource Objektes hab dieses nochmal neu erstellt
    und alles eingetragen jetzt gehts.
    Nun hab ich aber noch ne Frage. Ich mach die Abfrage
    SELECT MAX(KundenNr) AS MAX FROM Kunde;
    So in der Tabelle steht unter KundenNr folgendes
    1,2,3,4,5,6,10,11,12,13,14
    Das scheint der PrimaryKey zu sein. Nun liefert er mir aber als Ergebnis 6 zurück der peilt nicht das es da noch bei 10 weiter geht. Woran kann das liegen?
    Hab dann folgendes versucht:
    SELECT KundenNr FROM Kunde;

    int maxKundenNr=1;
    while(!ADOQuery1->Eof){
    if(ADOQuery->Fields->FieldByName("KundenNr")->AsInteger > maxKundenNr){
    maxKundenNr=ADOQuery->Fields->FieldByName("KundenNr")->AsInteger;
    }
    ADOQuery1->Next();
    }
    

    Das müsste doch gehen oder???
    Leider geht es nicht er liefert immer 1 als maxKundenNr zurück.

    MFG

    Maruu

    PS: Wieso ist eigendlich ab und zu das Forum down???



  • Bevor es die Mods schreiben: 1 Thema pro Thread, 1 Thread pro Thema!
    Eröffne also bitte eine neue Diskussion.


Anmelden zum Antworten