ADOTable Excaption Problem?
-
Hast Du's schon mal mit TADOQuery oder TADODataset versucht. TADOTable ist voller Bugs. TADOTable sollte man höchstens dann verwenden, wenn eine bestehende Anwendung umgestellt wird. Auf gar keinen Fall sollte sie in neuen Anwendungen verwendet werden. Sie ist kaum mehr als ein 'Marketinggag'.
Hab' ich jetzt schon mehrfach gepostet, aber anscheinend glaubt mir niemand.
-
Ok das hab ich nicht gewusst.
Aber wie verwende ich das dann?
TADOQuerry hab ich ja oben schon drin (siehe weiter oben),
was hat es mit dem TADODataset auf sich?? Wie verwende ich es??MFG
Maruu
-
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 DataSourceSo 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
-
Hallo
schau mal mit dem Debugger ob du was zurueckbekommst
(das active=true kannst du dir sparen
mit open holst du schon die DatenMfG
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.