Einzelnen Beitrag anzeigen

Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Exceptions gehen zwischen den Threads verloren?

  Alt 21. Dez 2015, 15:52
@nahpets
auf den ersten Blick das sieht meiner Procedure recht ähnlich:
Delphi-Quellcode:
function GetADOErrorstring(conn:TADOConnection):string; { nur die ADO-Errors!}
var
  iError : Integer;
  sError : string;
begin
  if conn.Errors.Count>0 then begin
    sError:=format('ADO-Error(s): %d',[conn.Errors.Count])+CRLF+CRLF;
    for iError := 0 to conn.Errors.Count - 1 do begin
      {-- ADO Errors:   }
      sError:=sError+Format('Error-No.: 0x%x',[conn.Errors[iError].Number])+CRLF;
      sError:=sError+Format('%s; (SQLState: %s)',[conn.Errors[iError].Description, conn.Errors[iError].SQLState])+CRLF;
      sError:=sError+Format('Source: %s', [conn.Errors[iError].Source])+CRLF;
      sError:=sError+Format('NativeError: %d', [conn.Errors[iError].NativeError])+CRLF+CRLF;
    end;
    result:=serror;
  end;
end;{-- GetADOErrorstring -------------------------------------------}
ich schau es mir mal näher an.


Was genau läuft denn jetzt in welchem Thread?
die nackte Abfrage in einem, die Datenausgabe im zweiten und dann gibt es noch den Hauptthread der leben vortäuscht.

Wenn du aus einem Thread heraus etwas anzeigen willst, musst du Synchronize() (o.ä.) benutzen.
Auch bei ShowMessage bzw. Exceptions? ich hab im Hinterkopf, das da automatisch was eigenes für erzeugt wird?


Ansonsten hoffe ich mal, dass du nicht aus dem Thread heraus auf ADO-Komponenten auf dem Formular zugreifst.
wenn Du unter Formular das Hauptformular verstehst (und nicht das DM) dann nein.



Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat