Autor |
Beitrag |
Patriol
      
Beiträge: 52
D3, D5, D7
|
Verfasst: Di 20.02.07 22:44
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.
|
|
GTA-Place
      

Beiträge: 5248
Erhaltene Danke: 2
WIN XP, IE 7, FF 2.0
Delphi 7, Lazarus
|
Verfasst: Di 20.02.07 23:02
Syntax lernen:
Delphi-Quelltext 1:
| 'SELECT ... = "' + FloatToStr(...) + '"'); |
Sagt zumindest Google -> forum.dsdt.info/viewtopic.php?p=130751
_________________ "Wer Ego-Shooter Killerspiele nennt, muss konsequenterweise jeden Horrorstreifen als Killerfilm bezeichnen." (Zeit.de)
|
|
Patriol 
      
Beiträge: 52
D3, D5, D7
|
Verfasst: 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
      
Beiträge: 1335
Erhaltene Danke: 118
Win 10
RIO, CE, Lazarus
|
Verfasst: 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.
_________________ Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
|
|
Patriol 
      
Beiträge: 52
D3, D5, D7
|
Verfasst: 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
      
Beiträge: 1098
Erhaltene Danke: 13
Win7 geg. WInXP oder sogar Win98
Rad2007
|
Verfasst: 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
      

Beiträge: 5502
Erhaltene Danke: 220
Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
|
Verfasst: 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 
      
Beiträge: 52
D3, D5, D7
|
Verfasst: Mi 21.02.07 20:32
Daran hatte ich gestern abend auch gedacht nur leider ist das Verhalten mit IntToStr genauso ... 
|
|
Patriol 
      
Beiträge: 52
D3, D5, D7
|
Verfasst: Mi 21.02.07 20:48
Hab den Fehler gefunden ... is mir ja schon fast peinlich
Mein Feld in der DB heißt nicht wie der Parameter "AParentID" sonder "ParentID". Kann er dann natürlich nich finden
Sorry wenn ich euch mit son dummen Fehler belästigt hab, aber trotzdem danke für die Hilfe!
|
|