Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi BDE+Paradox+Query.Active -> Absturz (https://www.delphipraxis.net/26685-bde-paradox-query-active-absturz.html)

Stephan 27. Jul 2004 16:50


BDE+Paradox+Query.Active -> Absturz
 
Hi,

Ich habe eine Suchfunktion mit der ich in einer Paradox Datenbank bestimmte Datensätze suchen kann.

SQL Query:

SELECT * FROM "xxxxxxxxxxxxxx.db" WHERE
Eintrag LIKE "%irgendwas%"
or upper(Betreff) LIKE "%irgendwas%"or upper(Speichername) LIKE "%irgendwas%"


Wenn in der zweiten Zeile statt %irgendwas% nach einem Text gesucht wird der in keinem Datensatz von Eintrag zu finden ist stürzt das Programm beim Versuch QuerySearch.Active := true auszuführen ab. Es reagiert nicht mehr. (es benötigt aber bis zum kill durch den Taskmanager ungeheuer viel CPU-Ressourcen).

Ich hab keine Ahnung woran das liegen kann. Führe ich dieses Query manuell über den Objektinspektor aus passiert genau dasselbe. Mein komplettes Delphi friert ein. Da stimmt doch was nicht?

viele Grüße

Stephan Munz

Stephan 29. Jul 2004 10:38

Re: BDE+Paradox+Query.Active -> Absturz
 
Hi,

also am DataSource liegt es definitiv nicht. Das habe ich Testweise deaktiviert. Wenn ich das Query im Delphi Objektinspektor ausführe passiert genau dasselbe. Delphi friert ein und lastet die komplette CPU aus.

Gibt es eine Alternative Paradox anzusprechen? (möglichst klein. ADO ist vom Setup schon zu groß, evtl. nativ?!)

Memo 29. Jul 2004 10:42

Re: BDE+Paradox+Query.Active -> Absturz
 
Ich habe mal versucht den Fehler mit deinen Vorgaben zu reproduzieren. Es ist mir nicht gelungen.

Stephan 29. Jul 2004 11:08

Re: BDE+Paradox+Query.Active -> Absturz
 
Hi,

der Fehler scheint bei manchen Tabellen aufzutreten, bei anderen wiederum nicht. Ist ziemlich merkwürdig :(

viele Grüße

Stephan

Memo 29. Jul 2004 11:30

Re: BDE+Paradox+Query.Active -> Absturz
 
Zitat:

Zitat von Stephan
Hi,
der Fehler scheint bei manchen Tabellen aufzutreten, bei anderen wiederum nicht. Ist ziemlich merkwürdig :(

Schonmal eine Reparatur durchgeführt?

franktron 29. Jul 2004 11:37

Re: BDE+Paradox+Query.Active -> Absturz
 
Das problem ist das er warscheinlich viele Datensätze in der DB hat und wenn man dann eine solche Query an die BDE schickt hängt die für ein paar min (kann auch 1 Std. sein :zwinker: )

Stephan 29. Jul 2004 11:48

Re: BDE+Paradox+Query.Active -> Absturz
 
Hi,

es sind ja nicht viele Datensätze drin :) die ganze Tabelle hat max. 500 kb. Daran liegt es nicht. Aber das Problem tritt bei Eintrag LIKE ... auf. Eintrag ist ein Richedit in der Datenbank (BLOB). Wenn ich das raus nehm funktioniert. Aber das müsste doch mit LIKE funktionieren.... (es hängt sich ja nur, wenn kein Datensatz über LIKE gefunden werden kann).

viele Grüße

Stephan

Stephan 29. Jul 2004 11:50

Re: BDE+Paradox+Query.Active -> Absturz
 
Hi,

ich habe noch etwas rausgefunden. Es funktioniert mit:

Eintrag LIKE "bild"

aber nicht mit

Eintrag LIKE "%bild%" <- hängt sich auf.

Aber wie kann ich sonst eine Suchfunktion realisieren?!

//Nachtrag:
In meinem Fall ist sogar nur das vordere % schuld?!

viele Grüße

Stephan

Stephan 29. Jul 2004 12:18

Re: BDE+Paradox+Query.Active -> Absturz
 
Hi,

unter http://www.logicomm.it/pdxhak.html gibt es ein Wiederherstellungstool von defekten paradox Tabellen. Ich habe folgende Fehlermeldung bei der nicht funktionierenden Tabelle erhalten:

Bad blob data size (169 bytes).

Wie kann ich den Fehler beheben? Gibt es irgendein gutes Tool dafür?

viele Grüße

Stephan Munz

Stephan 29. Jul 2004 12:33

Re: BDE+Paradox+Query.Active -> Absturz
 
Hi,

Problem gelöst!! :)

es war eine fehlerhafte Tabelle. Es gibt von Borland ein Tool namens "TUtility". Hat wunderbar geklappt :D

danke für eure Antworten

viele Grüße

Stephan Munz


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:51 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