AGB  ·  Datenschutz  ·  Impressum  







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

Problem: Update in Thread

Ein Thema von TRomano · begonnen am 20. Jan 2014 · letzter Beitrag vom 23. Jan 2014
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von TRomano
TRomano

Registriert seit: 24. Nov 2004
Ort: Düsseldorf
192 Beiträge
 
Delphi 11 Alexandria
 
#1

Problem: Update in Thread

  Alt 20. Jan 2014, 18:34
Datenbank: MySQL • Version: 5.5 • Zugriff über: UniDAC 5.1.4
Hallo zusammen,

bei mir tritt ein seltsames Verhalten auf, wenn ich ein DB in einem Thread aktualisiere. So lange es String- oder Datumsfelder sind passiert nichts, aber wenn ich JPEG´s von der Platte lade ist die Connection weg (Fehler 10053 Socket error) ...
Ich habe die Connection und die Query im Thread etwas weiter vorn in der Execute-Method erzeugt. Hier ein Auschnitt, der läuft. Kommentiere ich das ...LoadfromFile8fFileName) wieder ein knallt es mit dem Fehler.

Hat einer Idee, was dort schief läuft ?

Delphi-Quellcode:
    QueryThread.First;
    while (not QueryThread.Eof) and (not Terminated) do begin
      sDateTime := FormatDateTime(cFormatDT,Now);
      fFileName := oFldFile.AsString;
      if FileExists(fFileName)
         then begin
                try
                  QueryThread.Edit;
                  oFldUser.AsString := fSQLAccount.User;
                  oFldDate.AsDateTime := Now;
// oFldBlob.LoadFromFile(fFileName);
                  QueryThread.Post;
                  inc(fThreadData.PictureOkay);
                except
                  on E:Exception do begin
                     inc(fThreadData.PictureFailed);
                     fThreadData.Messages.Add(Format('%s - Fehler beim Schreiben der Tabelle "Pictures": %s',[sDateTime,E.Message]));
                  end;
                end;
              end
         else begin
                inc(fThreadData.PictureFailed);
                fThreadData.Messages.Add(Format('%s - Bilddatei nicht vorhanden: %s',[sDateTime,fFileName]));
              end;
      QueryThread.Next;
      inc(fThreadData.Counter);
      if (fThreadData.Counter mod 10 = 0) then Synchronize(UpdateProgress);
    end;
Gruß Tom
Thomas Forget
  Mit Zitat antworten Zitat
Benutzerbild von TRomano
TRomano

Registriert seit: 24. Nov 2004
Ort: Düsseldorf
192 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Problem: Update in Thread

  Alt 20. Jan 2014, 19:42
Kommuniziert das .LoadFromFile() vielleicht über den Haupt-Thread ? Das wäre meine einzige Vermutung, wieso die Connection verloren geht ...
Thomas Forget
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#3

AW: Problem: Update in Thread

  Alt 20. Jan 2014, 21:03
Da dürfte die Gegenstelle den Abbruch verursachen. Meiner Meinung nach ist die Art, wie Du Bilder in der DB speicherst, nicht korrekt. Wenn ich google, sehe ich immer einen TBlobStream, der verwendet wird.
  Mit Zitat antworten Zitat
Benutzerbild von TRomano
TRomano

Registriert seit: 24. Nov 2004
Ort: Düsseldorf
192 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Problem: Update in Thread

  Alt 20. Jan 2014, 21:32
Es läuft ja so im normalen Haupt-Thread korrekt. Ich werde deine Anmerkung mal im Sourcecode checken ...
Thomas Forget
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer
Online

Registriert seit: 13. Aug 2002
17.195 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Problem: Update in Thread

  Alt 20. Jan 2014, 21:32
Wie groß sind die JPEG-Dateien?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von TRomano
TRomano

Registriert seit: 24. Nov 2004
Ort: Düsseldorf
192 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Problem: Update in Thread

  Alt 20. Jan 2014, 21:51
Ich hatte jetzt nicht die Zeit zu prüfen, ob TBlobField.LoadFromFile(...) alles korrekt händelt, aber TBlobStream stammt noch von der BDE (ihgitt) und verlangt ein BDE-DataSet ... nicht gut ! Ich werde noch einmal den Debugger bemühen.
Thomas Forget
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#7

AW: Problem: Update in Thread

  Alt 20. Jan 2014, 22:17
Ich hatte jetzt nicht die Zeit zu prüfen, ob TBlobField.LoadFromFile(...) alles korrekt händelt, aber TBlobStream stammt noch von der BDE (ihgitt) und verlangt ein BDE-DataSet ... nicht gut ! Ich werde noch einmal den Debugger bemühen.
Auweia. Asche auf mein Haupt.
  Mit Zitat antworten Zitat
Benutzerbild von TRomano
TRomano

Registriert seit: 24. Nov 2004
Ort: Düsseldorf
192 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Problem: Update in Thread

  Alt 20. Jan 2014, 22:18
Alles zwischen 35 und 400 KB.
Thomas Forget
  Mit Zitat antworten Zitat
Benutzerbild von TRomano
TRomano

Registriert seit: 24. Nov 2004
Ort: Düsseldorf
192 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Problem: Update in Thread

  Alt 20. Jan 2014, 22:50
Irgendwo im Datenmodul des jeweiligen Thread fand eine stille Exception statt, die dann wohl wiederum über TWinControl.mainWndProc mit dem Haupt-Thread kommunizierte ... das zerschoss die Connection ! Ich habe jetzt erst einmal die TUniQuery hart verdrahtet, denn irgendwo war wohl ein Fehler im dynamischen Setzen des "SQLUpdate.Text"-Property. Selbst schuld ...
Danke für Eure Mühen !

Gruß Thomas
Thomas Forget
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Problem: Update in Thread

  Alt 20. Jan 2014, 22:55
Du hast diese Query-Instanz aber schon dynamisch im Thread erstellt (so wie auch die Connection-Instanz)?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:40 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