Hallo Sven,
einen Fehler an deinem SELECT-Statement kann ich auch nicht entdecken. Die genaue Code-Zeile, bei der die Zugriffsverletzung auftritt, hast du leider nicht angegeben. "Lesen von Adresse 0000" ist ein Zeichen dafür, dass ein Zeiger nicht initialisert war. Vielleicht trotzdem noch ein paar Hinweise:
Delphi-Quellcode:
const
SECTION_NAME = '
SQL';
KEY_NAME = '
SQLS';
PARAM_NAME = '
SF1';
procedure TForm1.Button3Click(Sender: TObject);
var
ini: TMemIniFile;
fn: TFileName;
stmt:
String;
begin
with ListBox3
do
fn := DatenPfad + Items[ItemIndex];
with TMemIniFile.Create(fn)
do
try
stmt := ReadString(SECTION_NAME, KEY_NAME, '
');
ShowMessage(stmt);
// ist da wirklich ein Parameter SF1 drin?
finally
Free;
end;
with Query1
do
begin
// Close; // nicht nötig, weil SQL.Text neu gesetzt wird
// SQL.Clear; // überflüssig weil SQL.Text als Ganzes verändert wird
SQL.Text := stmt;
// Query1.ParamCheck := True; // nur einmal im OI setzen
ParamByName('
SF1').AsString := S1SF1.Text;
Open;
end;
end;
Wichtig ist, dass wirklich die richtige INI-Datei geöffnet wird - nämlich die, welche du im Editor verändert hast.
Grüße vom marabu