Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi query: Datenbank Abfrage (https://www.delphipraxis.net/101283-query-datenbank-abfrage.html)

OoNapiBLNoO 10. Okt 2007 19:06

Datenbank: DataSource • Zugriff über: Query

query: Datenbank Abfrage
 
Guten Tag

hab hier nen kleines Problem, ich schaffe es nicht eine richtige Datenbank Abfrage zu erstellen.
Auf Form1 habe ich nen DBGrid, DataSource und ein ClientDataSource und habe mein Informatik Lehrer gefragt und er meinte ich soll eine SQL Abfrage mittels Query machen. Hab mich im Board hier auch umgesehn und eine menge dazu gefunden, aber ich seh da nicht so recht durch.

z.B. dieses hier

Delphi-Quellcode:
SQL.Text := 'SELECT * FROM tabellea WHERE text=:text';
wenn ich sowas versuche, sucht er eine *.db Datenbank. Ich muss dazu sagen das ich eine MyBase DB angelegt habe und meine Daten in einer *xml Datei ablege.

Kann mir jemand Hilfestellung geben, wie ich eine Button Abfrage mache? Auf meiner Such-Form befindet sich nur ein EditFeld, TQuery und ein Button, habe die DataSource mit Query verbunden. Er soll das Ergebniss mittels ShowMessage ausgeben. So dacht ich mir das....


ich danke schonmal für euer bemühen

mkinzler 10. Okt 2007 19:09

Re: query: Datenbank Abfrage
 
Delphi-Quellcode:
Query.ParamByName('text').Value := '<Wert>';
Query.Open;

OoNapiBLNoO 10. Okt 2007 19:36

Re: query: Datenbank Abfrage
 
Zitat:

Zitat von mkinzler
Delphi-Quellcode:
Query.ParamByName('text').Value := '<Wert>';
Query.Open;

hmpf, damit kann ich leider noch garnix anfangen (bin Anfänger) :(

mkinzler 10. Okt 2007 19:40

Re: query: Datenbank Abfrage
 
Du hast in deiner abfgar einen Parameter, dessen Wert du setzen musst.

OoNapiBLNoO 10. Okt 2007 20:17

Re: query: Datenbank Abfrage
 
Delphi-Quellcode:
procedure TForm5.BitBtn1Click(Sender: TObject);
var i: integer;
    Eingabe: string;
begin
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('SELECT * FROM Datensaetze.xml');
  Query1.Open;
  Query1.First;
  while not Query1.EOF do
    begin
      Eingabe:=EingabeEdit.Text;
      Eingabe:= '';
      for i := 0 to Query1.FieldCount - 1 do
        Eingabe := Eingabe + Query1.Fields[i].AsString + ';';
      ShowMessage(Eingabe);
      Query1.Next;
    end;
end;
also diesen Code habe ich gestern hier aus dem Forum entnommen und für mich angepasst. Er compiliert auch, nur wenn ich es benutze kommt eine Fehlermeldung, das Abfrage auf Text oder ASCII Tabellen nicht unterstützt werden, kann mir jemand sagen inwieweit ich mein Code ändern muss?

hoika 10. Okt 2007 20:38

Re: query: Datenbank Abfrage
 
Hallo,

mit der BDE (?) kannst du keine XML-Datei bearbeiten (öffnen).


Heiko

OoNapiBLNoO 10. Okt 2007 20:52

Re: query: Datenbank Abfrage
 
Zitat:

Zitat von hoika
Hallo,

mit der BDE (?) kannst du keine XML-Datei bearbeiten (öffnen).


Heiko

hmmmmm, denn brauch ich doch eine *db Datei :gruebel: , wie leg ich mir sowas an? oder brauch ich da ein komplett anderes datenbank konzept?

hoika 11. Okt 2007 06:44

Re: query: Datenbank Abfrage
 
Hallo,

Finger weg von der BDE.
Eine XML-Datei kann man auch bearbeiten.

Benutz mal die Suchfunktion hier,
oder lade dir das XML von MS.


Heiko

marabu 11. Okt 2007 09:18

Re: query: Datenbank Abfrage
 
Hallo,

was ist denn hier vorgegeben? Die Verwendung der Komponente TClientDataSet, des Daten-Speicherformats XML oder die Selektion mittels SQL? Als Provider wird ja wohl ein XMLTransformProvider verwendet - eine Abfrage formulierst du dort als Filter:

Delphi-Quellcode:
NameOfField := 'text';
SearchText := 'success';

with ClientDataSet do
begin
  DisableControls;
  Filtered := False;
  Filter := Format('%s LIKE ''%s''', [NameOfField, SearchText]);
  Filtered := True;
  EnableControls;
end;
Würde der Provider hinter deinem ClientDataSet SQL verstehen, dann würdest du deine Abfrage (Query) der Eigenschaft CommandText vom ClientDataSet zuweisen. Die Einführung einer Komponente TQuery scheint mir ein Missverständnis zu sein. Der XMLTransformProvider beherrscht übrigens kein SQL.

Grüße vom marabu


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