Hallo!
Ich habe Probleme beim Auslesen von Memo-Feldern bei gefilterten DataSets.
Umgebung:
- Delphi 5
- MS SQLSRV 7.0
- TQuery (Filtered := true; Event: OnFilterRecord)
- Verwendung von TQuery.Filter nicht möglich!
Im unteren Beispiel wird beim Auslesen des ersten nicht leeren MemoFeldes
folgende Exception ausgelöst:
Ungültiges BLOB-Handle im Datnsatzpuffer
Ohne den Event OnFilterRecord - kein Problem!
procedure TForm.ButtonClick(Sender: TObject);
begin
with Query do
begin
SQL.Text := 'SELECT * FROM Tabelle1';
Open;
while not Eof do
begin
Memo.Lines.Text := FieldByName('memofeld'). AsString;
Next;
end;
Close;
end;
end;
procedure TForm1.QueryFilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
Accept := true/false;
end;
Mit diesem Beispiel kann das Problem nachvolzogen werden.
Eigentlich passiert mir das in einer Klasse die von TQuery abgeleitet ist.
Dazu leite ich im Constructor den Event um (andere Lösung habe ich nicht gefunden): OnFilterRecord := DoFilterRecord;
Vieleicht gibt es ja hierfür eine andere Lösung!
Bitte um schnelle Hilfe!!!
Mir steht das Wasser bis zum Hals (öh Nase) - wir haben bald eine Messe!
Ciao Herbert
Ich habe Probleme beim Auslesen von Memo-Feldern bei gefilterten DataSets.
Umgebung:
- Delphi 5
- MS SQLSRV 7.0
- TQuery (Filtered := true; Event: OnFilterRecord)
- Verwendung von TQuery.Filter nicht möglich!
Im unteren Beispiel wird beim Auslesen des ersten nicht leeren MemoFeldes
folgende Exception ausgelöst:
Ungültiges BLOB-Handle im Datnsatzpuffer
Ohne den Event OnFilterRecord - kein Problem!
procedure TForm.ButtonClick(Sender: TObject);
begin
with Query do
begin
SQL.Text := 'SELECT * FROM Tabelle1';
Open;
while not Eof do
begin
Memo.Lines.Text := FieldByName('memofeld'). AsString;
Next;
end;
Close;
end;
end;
procedure TForm1.QueryFilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
Accept := true/false;
end;
Mit diesem Beispiel kann das Problem nachvolzogen werden.
Eigentlich passiert mir das in einer Klasse die von TQuery abgeleitet ist.
Dazu leite ich im Constructor den Event um (andere Lösung habe ich nicht gefunden): OnFilterRecord := DoFilterRecord;
Vieleicht gibt es ja hierfür eine andere Lösung!
Bitte um schnelle Hilfe!!!
Mir steht das Wasser bis zum Hals (öh Nase) - wir haben bald eine Messe!
Ciao Herbert
Comment