![]() |
Absturz beim Zusammenfügen von Strings
Hi,
ich habe schon wieder ein Problem: wenn ich einen String einer Variablen zuordne und an den String eine Variable vom Typ String hänge, bekomme ich beim Ablauf einen Fehler: "Im Projekt BDB.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: 'Zugriffsverletzung bei Adresse 004028E5 in Modul BDB.exe'. Lesen von Adresse 0123FFFD.'. Prozess wurde angehalten. Mit einzelnen Anweisungen oder Start fortsetzen." Ich kann beim besten Willen keinen Fehler feststellen, hier einmal der Code:
Delphi-Quellcode:
An der Variablen Kapitel kann es nicht liegen, da ich auch mal probiert habe, eine Variable mit anderem Namen zu nehmen (String) und dort einfach etwas 'reingeschrieben habe und dann query := '....' + variable machte. Er stürzte auch ab. Ich habe auch versucht, eine andere Variable als query mal zusätzlich zu benutzen, ging aber auch nicht.
procedure TfrmHilfe.cbKapitelChange(Sender: TObject);
var sql: Tsql; _myRes: PMySql_Res; _myRow: PMySql_Row; query: String; Items: array of Integer; Kapitel: String; i: Integer; Helper: String; begin sql := Tsql.create; Kapitel := String(cbKapitel.Items.Objects[cbKapitel.ItemIndex]); if Kapitel = '' then begin query := 'SELECT id FROM HilfeKapitel ORDER BY Kapitel LIMIT 1'; mysql_real_query(sql._myCon, PChar(query), Length(query)); _myRes := mysql_store_result(sql._myCon); _myRow := mysql_fetch_row(_myRes); Kapitel := _myRow[0]; end; if Kapitel <> '' then begin Edit1.Text := Kapitel; // <- das hier gibt er prima aus query := 'SELECT id, Headline FROM HilfeTexte WHERE KapitelID = ' + Kapitel; // <- hier ist dann der Fehler { mysql_real_query(sql._myCon, PChar(query), Length(query)); _myRes := mysql_store_result(sql._myCon); SetLength(Items, mysql_num_rows(_myRes)); for i := 0 to High(Items) do begin lbTexte.Items.AddObject(_myRow[1], TObject(_myRow[0])); end;} end; end; Vielleicht kann mir einer von Euch helfen? Vielen Dank, Morfio ... |
Re: Absturz beim Zusammenfügen von Strings
Hallo nochmal,
komischerweise funktioniert es so:
Delphi-Quellcode:
Irgendwie mache ich doch einen ganz großen Fehler, oder? Was mache denn falsch?
procedure TfrmHilfe.cbKapitelChange(Sender: TObject);
var sql: Tsql; _myRes: PMySql_Res; _myRow: PMySql_Row; query: String; Items: array of Integer; Kapitel: Integer; i: Integer; Helper: String; begin lbTexte.Clear; sql := Tsql.create; Helper := String(cbKapitel.Items.Objects[cbKapitel.ItemIndex]); Kapitel := StrToInt(Helper); if Kapitel = 0 then begin query := 'SELECT id FROM HilfeKapitel ORDER BY Kapitel LIMIT 1'; mysql_real_query(sql._myCon, PChar(query), Length(query)); _myRes := mysql_store_result(sql._myCon); _myRow := mysql_fetch_row(_myRes); Kapitel := StrToInt(_myRow[0]); end; if Kapitel <> 0 then begin Edit1.Text := IntToStr(Kapitel); query := 'SELECT id, Headline FROM HilfeTexte WHERE KapitelID = ' + IntToStr(Kapitel); Edit1.Text := query; mysql_real_query(sql._myCon, PChar(query), Length(query)); _myRes := mysql_store_result(sql._myCon); SetLength(Items, mysql_num_rows(_myRes)); for i := 0 to High(Items) do begin _myRow := mysql_fetch_row(_myRes); lbTexte.Items.AddObject(_myRow[1], TObject(_myRow[0])); end; end; end; Morfio ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz