AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL Query sequential bearbeiten
Thema durchsuchen
Ansicht
Themen-Optionen

SQL Query sequential bearbeiten

Ein Thema von Alliya · begonnen am 30. Apr 2004 · letzter Beitrag vom 30. Apr 2004
Antwort Antwort
Alliya

Registriert seit: 30. Apr 2004
Ort: Homburg
6 Beiträge
 
Delphi 7 Professional
 
#1

SQL Query sequential bearbeiten

  Alt 30. Apr 2004, 09:57
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:
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;
Wenn ich das bearbeiten des Datensatzes weg lasse, geht er die ganzen Datensätze der Query durch.
Sobald ich einen bearbeite, scheint er immer wieder beim ersten anzufangen, so komm ich nie weiter als bis zum zweiten Datensatz.

Weiß jemand Rat?
  Mit Zitat antworten Zitat
Benutzerbild von Gollum
Gollum

Registriert seit: 14. Jan 2003
Ort: Boxberg
456 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: SQL Query sequential bearbeiten

  Alt 30. Apr 2004, 10:02
Hallo,

Delphi-Quellcode:
    begin
      MySQLQuery1.Edit;
      MySQLQuery1Name.Value := StringReplace(MySQLQuery1Name.Value, '³' , 'ü',[rfIgnoreCase]);
      MySQLQuery1.Post; // <-- Änderung in DB schreiben
      Position := i;
      MySQLquery1.Next;
    end;
Was ich aber nicht verstehe ist, dass Du die Änderungen nicht mit einer Query machst. Etwa in der Form:
Code:
UPDATE Tabelle SET Feld=NeuerEintrag
Durch die Anweisung werden alle Felder auf einmal aktualisiert und Du sparst Dir die Schleife.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#3

Re: SQL Query sequential bearbeiten

  Alt 30. Apr 2004, 10:04
Herzlich willkommen hier in der Delphi-PRAXIS

Das ist eigentlich ganz einfach...
SQL:
SQL-Code:
Update DeineTabelle t
Set t.DeinFeld = Replace(t.DeinFeld , :i_SearchStr, :i_ReplStr)
in Delphi:
Delphi-Quellcode:
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;
Eventuell musst du noch ein Query.Prepare o.ä. ausführen, bevor du die Parameterwerte übergeben kannst.
  Mit Zitat antworten Zitat
Alliya

Registriert seit: 30. Apr 2004
Ort: Homburg
6 Beiträge
 
Delphi 7 Professional
 
#4

Re: SQL Query sequential bearbeiten

  Alt 30. Apr 2004, 10:30
Ahh, wirklich ganz einfach - wenn man gesagt bekommt wies geht
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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz