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:
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;
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.
Vielleicht kann mir einer von Euch helfen?
Vielen Dank,
Morfio ...