Entwickler-Ecke
Datenbanken - Kein Standardwert
Patriol - Di 20.02.07 22:44
Titel: Kein Standardwert
Möchte mittels ADO auf eine AccessDB (2000) zugreifen. Ich erhalte immer wenn ich meine Query
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure TfmMain.ExecQuery(AParentID: Double); begin try qryMain.Active := false; qryMain.SQL.Text := 'SELECT * FROM Tabelle WHERE AParentID = ' + FloatToStr(AParentID); qryMain.Active := true; |
ausführen will die Exception:
Zitat: |
Project XYZ.exe raised exception class EoleException with message 'Parameter AParentID hat keinen Standardwert'. [...] |
Hat jemand eine Ahnung woran das liegen kann? Wüsste nicht was daran falsch ist.
Patriol - Di 20.02.07 23:50
Nee leider hat das nichts gebracht. hätte mich auch ein wenig gewundert, denn die anführungszeichen deuten ja nur auf einen String hin und da ich in der DB auch einen zahlentyp habe sollte es auch ohne die anführungszeichen gehen.
Sinspin - Mi 21.02.07 00:29
Interessante Fehlermeldung. Ist das alles oder kommt da noch mehr?
Wenn ich die Meldung so lese denke ich an eine Spalte der kein Typ zugeordnet wurde oder deren Intialwert nicht gesetzt und somit NULL ist.
Patriol - Mi 21.02.07 13:43
Eigentlich haben alle Felder einen Datentyp.
Das komische ist nur, wenn ich statt
FloatToStr(AParentID) den Wert direkt mit ins SQL-Statement schreibe
SELECT * FROM Tabelle WHERE AParentID = 0, dann funktioniert es auch.
Moderiert von
Christian S.: sql-Statement repariert
Tilo - Mi 21.02.07 14:57
Compiliert Delphi den ursprünglichen Code?
Wenn ja setzt mal in Zeile 5 einen Haltepunkt und sieht nach welchen Wert AParentID hat.
Vielleicht liegt dort der Fehler.
UGrohne - Mi 21.02.07 15:01
Was hast Du denn als Werte für ParentID? Oder anders gefragt: Gibt es einen Grund, dass Du FloatToStr machst und nicht IntToStr?
Wenn Du nämlich einen Wert mit Dezimalstellen hast, dann wird daraus ein String mit Komma und in SQL brauchst ist der Punkt der Dezimaltrenner.
Patriol - Mi 21.02.07 20:32
Daran hatte ich gestern abend auch gedacht nur leider ist das Verhalten mit IntToStr genauso ... :(
Patriol - Mi 21.02.07 20:48
Hab den Fehler gefunden ... is mir ja schon fast peinlich :oops:
Mein Feld in der DB heißt nicht wie der Parameter "AParentID" sonder "ParentID". Kann er dann natürlich nich finden :autsch:
Sorry wenn ich euch mit son dummen Fehler belästigt hab, aber trotzdem danke für die Hilfe!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!