AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Zugriffsverletzung bei SQL Abfrage (mit Params) [gelöst]
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriffsverletzung bei SQL Abfrage (mit Params) [gelöst]

Ein Thema von Deadinpac · begonnen am 23. Sep 2006 · letzter Beitrag vom 24. Sep 2006
Antwort Antwort
Deadinpac

Registriert seit: 8. Aug 2003
Ort: Oberreute
74 Beiträge
 
Delphi 2007 Enterprise
 
#1

Zugriffsverletzung bei SQL Abfrage (mit Params) [gelöst]

  Alt 23. Sep 2006, 15:02
Datenbank: Paradox • Version: 7 • Zugriff über: TQuery;TDatasource
Moin,

Ich erhalte immer eine Zugriffsverletzung bei einer SQL Abfrage mit Params!
vieleicht könnt ihr mir weiterhelfen?

uses Inifiles;
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
ini: Tinifile;
begin
try
Ini := TIniFile.Create(Datapfad+Listbox3.Items[ListBox3.ItemIndex]);
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Text := ini.ReadString('SQL','SQLS','');
Query1.ParamCheck := True;
Query1.ParamByName('SF1').AsString := S1SF1.Text;
Query1.Open;
finally
    Ini.Free;
end;
end;
Ini-File
SQL-Code:
[*SQL*]
SQLS=SELECT * FROM infosS1 WHERE (Name = :SF1)
(*) Nur Wegen den BBCODES

Zugriffsverletzung
Code:
Zugriffsverletzung bei Adresse 004CE470 in Modul 'swinfo.exe'. Lesen von Adresse 00000000.
Habe mir schon andere Codes hier im Forum angeguckt aber ich finde kein Fehler

MFG
Sven
Sven Grimm
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Zugriffsverletzung bei SQL Abfrage (mit Params)

  Alt 23. Sep 2006, 15:40
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
  Mit Zitat antworten Zitat
Deadinpac

Registriert seit: 8. Aug 2003
Ort: Oberreute
74 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Zugriffsverletzung bei SQL Abfrage (mit Params) [gelöst]

  Alt 24. Sep 2006, 01:23
Danke @marabu

komischer weise nachdem ich gepostet habe und gucken wollte bei welchen Zeiger er die zugriffsverletzung anzeigt ging alles Ganz normal ohne zugriffsverletzung *komisch*

Aber ich habe jetzt trozdem dein Code verwendet der sieht mir besser geschrieben aus

MFG
Sven
Sven Grimm
  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 18:45 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