AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Update ausführen

Ein Thema von Metallicwar · begonnen am 25. Nov 2010 · letzter Beitrag vom 26. Nov 2010
Antwort Antwort
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#1

Update ausführen

  Alt 25. Nov 2010, 15:55
Datenbank: ADS • Version: 9 • Zugriff über: Delphi
Hallo, kurz vor Feierabend häng ich aufm Schlauch...
erstmal Code: .......
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  iDatensätze: Integer;
  sNeueDatei: String;
  sAlteDatei: String;
begin
  qAkteAnhänge.SQL.Text := 'SELECT ID_PersonalAkte, Dateiname, DateinameSave FROM PersonalAkte_Anhaenge';

  qAkteAnhänge.Open;

  qAkteanhänge.First;
  for iDatensätze := 0 to qAkteanhänge.RecordCount - 1 do
    begin
      sNeueDatei := qAkteanhänge.FieldByName('ID_PersonalAkte').AsString + '_' + qAkteanhänge.FieldByName('Dateiname').AsString;
      sAlteDatei := qAkteanhänge.FieldByName('DateinameSave').AsString;
      //RenameFile(sAlteDatei, sNeueDatei);
      qAkteanhänge.ExecSQL := 'UPDATE Personalakte_Anhaenge SET DateinameSave=' + QuotedStr(sNeueDatei) + ' WHERE DateinameSave= ' + QuotedStr(sAlteDatei); // in dieser Line hab ich Probleme
      qAkteanhänge.Open;
      qAkteanhänge.Close;
      qAkteAnhänge.Next;
    end;
end;
.. habe das ganze zuvor mit qAkteanhänge.SQL.Text := 'Update .... probiert, da meinte er ich soll bei solchen Statements execSQL verwenden. Soweit so gut, also verwende ich nun execSQL aber so meint er, dass der linken seite nichts zugewiesen werden kann wenn ich den : weglasse meint er := erwartet aber = gefunden?!?
Bin ausgepowert
würde mich über Hilfe freuen, damit ich dass heute Abend noch fertig bekomme.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Update ausführen

  Alt 25. Nov 2010, 16:00
Du brauchst eine 2. Query, sonst kannst Du ja nicht durch die Datensätze iterieren. Dieser weist Du dann ein parametrisiertes Statement zu (Query.SQL.Text := ), belegst die Parameter anhand der gefundenen Daten und führst es aus (Query.ExecSQL).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

AW: Update ausführen

  Alt 25. Nov 2010, 16:00
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  iDatensätze: Integer;
  sNeueDatei: String;
  sAlteDatei: String;
begin
  qAkteAnhänge.SQL.Text := 'SELECT ID_PersonalAkte, Dateiname, DateinameSave FROM PersonalAkte_Anhaenge';

  qAkteAnhänge.Open;

  while not qAkteanhänge.Eof do
    begin
      sNeueDatei := qAkteanhänge.FieldByName('ID_PersonalAkte').AsString + '_' + qAkteanhänge.FieldByName('Dateiname').AsString;
      //sAlteDatei := qAkteanhänge.FieldByName('DateinameSave').AsString;
      //RenameFile(sAlteDatei, sNeueDatei);

      qAkteanhänge.Edit;
      qAkteanhänge['DateinameSave'] := sNeueDatei;
      qAkteanhänge.Post;
      qAkteAnhänge.Next;
    end;
end;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Update ausführen

  Alt 25. Nov 2010, 16:01
Jo, stimmt, ist in diesem Fall ja viel einfacher

[edit] Oder noch einfacher: die Abfrage ganz weglassen und alles im Update-Statement erledigen. Das dürfte auch der performanteste Weg sein. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH (25. Nov 2010 um 16:05 Uhr)
  Mit Zitat antworten Zitat
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#5

AW: Update ausführen

  Alt 25. Nov 2010, 19:56
[edit] Oder noch einfacher: die Abfrage ganz weglassen und alles im Update-Statement erledigen. Das dürfte auch der performanteste Weg sein. [/edit]
dazu muss ich ja eine neue Query hinzufügen und die bau ich dann einfach in meine Schleife ein. So sollte es gehn, werd ich gleich mal ausprobieren, vorrausgesetzt die VM startet mal
  Mit Zitat antworten Zitat
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#6

AW: Update ausführen

  Alt 25. Nov 2010, 20:31
hmn, irgendwas mach ich falsch....
Delphi-Quellcode:
      begin
        qAkteAnhänge.First;
        for iDatensätze := 0 to qAkteanhänge.RecordCount - 1 do
          begin
            sNeueDatei := qAkteAnhänge.FieldByName('ID_PersonalAkte').AsString + '_' + qAkteanhänge.FieldByName('Dateiname').AsString;
            sAlteDatei := qAkteAnhänge.FieldByName('DateinameSave').AsString;
            RenameFile(sPfadPersonal+sAlteDatei, sPfadPersonal+sNeueDatei);
            qNewAuftrag.SQL.Text := 'UPDATE Auftragakte_Anhaenge SET DateinameSave=' + QuotedStr(sNeueDatei) + 'WHERE DateinameSave=' +QuotedStr(sAlteDatei);
            qNewAuftrag.ExecSQL;
            qAkteAnhänge.Next;
          end;
      end;
der SQL stimmt doch, er soll für jeden Datensatz den alten Dateinamen durch den neuen ersetzen, aber das tut er nicht, in der DB stehn immer noch die selben werte....
  Mit Zitat antworten Zitat
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#7

AW: Update ausführen

  Alt 25. Nov 2010, 20:38
kommando zurück!!!!
hab im SQL.Text die falsche Tabelle angegeben. ^^
mal schaun, ich teste jetzte mal und wenns noch irgendwo Probleme geben sollte, melde ich mich.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Update ausführen

  Alt 26. Nov 2010, 08:14
Was ich meinte:
SQL-Code:
UPDATE
  PersonalAkte_Anhaenge
SET
  DateinameSave = CONCAT(ID_PersonalAkte, '_', Dateiname)
Wieso clientseitig erledigen, was auch gleich auf dem Server geschehen könnte?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 01:38 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