![]() |
Datenbank: MySQL • Version: 4.1.14 • Zugriff über: ZEOSlib
Endlosschleife mit MySQL
Hallo!
In folgender Function möchte ich die ID einer Detail-Tabelle zu einem Wert auslesen. Falls der Wert nicht existiert soll er angelegt und die id zurückgegeben werden.
Delphi-Quellcode:
Soweit klappt alles. Wenn ich allerdings als Value 'Waiting for darkness, Dancing at the crowded e.p' übergebe erhalte ich eine Endlosschleife.
function TDataModule1.GetNameID(Table, Value: String): Integer;
begin Result := 0; if Table <> '' then with UpdateQuery do begin SQL.Clear; SQL.Add('SELECT id FROM '+ Table +' WHERE name = :value'); ParamByName('value').AsString := Value; Open; if RecordCount > 0 then // Existiert ! Result := FieldByName('id').AsInteger else begin // Anlegen ! SQL.Clear; SQL.Add('INSERT INTO '+ Table +' (name) VALUES (:value)'); ParamByName('value').AsString := Value; ExecSQL; ApplyUpdates; Result := GetNameID(Table, Value); end; end; end; Wahrscheinlich liegt es an dem Komma, vielleicht aber auch nicht. Ich habe versucht den Parameter im ersten Statement in Hochkommas zu stellen, bekomme aber eine Fehlermeldung 'Parameter nicht gefunden...' WASNU? :wall: |
Re: Endlosschleife mit MySQL
Ist in dem String vielleicht am Ende ein Leerzeichen? Das mag MySQL nämlich nicht (bzw. wird beim Insert abgeschnitten aber beim Vergleich berücksichtigt).
Nachtrag: Oder ist der String vielleicht zu lang für das Feld, so dass er beim Insert abgeschnitten wird? |
Re: Endlosschleife mit MySQL
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz