Ich stelle das mal bei Einsteigerfragen ein, weil ich nicht glaube, daß es mit der Datenbankabfrage direkt zu tun hat und ich keine Ahnung habe worans liegen könnte.
Erst mal die betreffende Routine (obwohl ich beinahe glaube, daß ich den Fehler von woanders verschleppe)
Code: Alles auswählen
begin
if MySQL51Connection1.Connected then begin
ShowBusyPanel('Aliases einlesen');
a := 0;
ListBox9.Items.BeginUpdate;
ListBox9.Items.Clear;
SQLQuery1.SQL.Text := 'select aliasname from alias order by aliasname';
SQLQuery1.Open;
while not SQLQuery1.EOF do begin
ListBox9.Items.Add(SQLQuery1.Fields[0].AsString);
inc(a);
StatusBar1.Panels[0].Text:=IntToStr(a);
StatusBar1.Panels[1].Text:=SQLQuery1.Fields[0].AsString;
Application.ProcessMessages;
SQLQuery1.Next;
end;
SQLQuery1.Close;
ListBox9.ItemIndex:=0;
ListBox9.items.EndUpdate;
Meldung('Aliasnamen neu eingelesen');
HideBusyPanel;
end;
end;
Diesmal nur wenn ich es in Lazarus starte.
Vor ein paar Wochen war's umgekehrt.
Da ist es in der Nachbarroutine (genauso aufgebau, nur andere Tabelle und andere ListBox) mit einer AccessViolation abgehauen, aber nur wenn ich die .exe gestartet hab. Im Debugger nicht.
Ich habe dann (schon nur mehr aus Verzweiflung) die Reihenfolge der beiden vertauscht, und Ruhe war.
Seither hab ich (an ganz anderen Stellen des Programmes) einiges dazuprogrammiert und heute fängt das an

Die Adresse des Fehlers wird mir nur im Assemblerfenster angezeigt, ich kann es nicht direkt meinem Quellcode zuordnen.
Wenn ich mit F8 zeilenweise ausführe, stürzt es in der Zeile mit SQLQuery1.Next; ab.
Hat wer eine Idee
Danke für's Lesen
Christian