![]() |
SQL Query sequential bearbeiten
Also habe folgendes Problem.
Ich arbeite mit Delphi 7 Pro und mit MySQLDAC. Nach dem Import einer Tabelle in MySQL werden die Sonderzeichen falsch dargestellt. Jetzt will ich sie wieder durch die richtigen Sonderzeichen austauschen. So sieht mein code aus:
Delphi-Quellcode:
Wenn ich das bearbeiten des Datensatzes weg lasse, geht er die ganzen Datensätze der Query durch.
procedure TForm1.Button3Click(Sender: TObject);
var i: Integer; begin with ProgressBar1 do begin Min := 0; Max := MySQLquery1.RecordCount; MySQLquery1.First; for i := Min to Max do begin MySQLQuery1.Edit; MySQLQuery1Name.Value := StringReplace(MySQLQuery1Name.Value, '³' , 'ü',[rfIgnoreCase]); Position := i; MySQLquery1.Next; end; end; end; Sobald ich einen bearbeite, scheint er immer wieder beim ersten anzufangen, so komm ich nie weiter als bis zum zweiten Datensatz. Weiß jemand Rat? |
Re: SQL Query sequential bearbeiten
Hallo,
Delphi-Quellcode:
Was ich aber nicht verstehe ist, dass Du die Änderungen nicht mit einer Query machst. Etwa in der Form:
begin
MySQLQuery1.Edit; MySQLQuery1Name.Value := StringReplace(MySQLQuery1Name.Value, '³' , 'ü',[rfIgnoreCase]); MySQLQuery1.Post; // <-- Änderung in DB schreiben Position := i; MySQLquery1.Next; end;
Code:
Durch die Anweisung werden alle Felder auf einmal aktualisiert und Du sparst Dir die Schleife.
UPDATE Tabelle SET Feld=NeuerEintrag
|
Re: SQL Query sequential bearbeiten
Herzlich willkommen hier in der Delphi-PRAXIS :hello:
Das ist eigentlich ganz einfach... SQL:
SQL-Code:
in Delphi:
Update DeineTabelle t
Set t.DeinFeld = Replace(t.DeinFeld , :i_SearchStr, :i_ReplStr)
Delphi-Quellcode:
Eventuell musst du noch ein Query.Prepare o.ä. ausführen, bevor du die Parameterwerte übergeben kannst.
With Query Do
Begin SQL.Text := 'Update DeineTabelle t' + #10 + 'Set t.DeinFeld = Replace(t.DeinFeld , :i_SearchStr, :i_ReplStr)'; // Parameterzuweisung With Parameters Do ParamByName('i_SearchStr').Value := ABC; ParamByName('i_ReplStr').Value := XYZ; End; // Ausführen ExecSQL; End; |
Re: SQL Query sequential bearbeiten
Ahh, wirklich ganz einfach - wenn man gesagt bekommt wies geht :D
Danke ihr beiden :) Hab Roberts SQL Lösung genommen und hat auch geklappt. Wußte nicht das man mit SQL auch einzelne Zeichen in einem String verändern kann, und hatte auch nix gefunden. Deshalb hatte ich zu der Delphi Lösung gegriffen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:13 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-2025 by Thomas Breitkreuz