![]() |
SQL - Abfrage - Problem
Huhu Ihr lieben Delphianer :-)
Folgendes Problem. Ich habe eine Datenbankverbindung aufgebaut und möchte gerne über ein SQL - Statement die Ergebnismenge von Table1 einschränken. Klappt leider nicht. könnt ihr mir sagen was ich falsch mache?
Delphi-Quellcode:
Vielen Dank schonmal,
unit Database;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, Db, DBTables, StdCtrls; type TForm1 = class(TForm) Table1: TTable; DataSource1: TDataSource; DBGrid1: TDBGrid; Query: TQuery; Button1: TButton; procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Query.Close; Table1.Active := FALSE; end; procedure TForm1.Button1Click(Sender: TObject); begin Query.Active:=false; Query.Sql.Clear; Query.Sql.Add('SELECT * from Version Where Kommentar is not Null'); Query.Active:=true; end; end. Christian |
Re: SQL - Abfrage - Problem
Hallo Christian_1980,
du machst nichts falsch. Die Query liefert dir die "eingeschränkte" Datenmenge als Ergebnis zurück. Das Objekt Table1 ist aber unabhängig von der Query. Du musst also deine Anzeigeelemente direkt mit der Query und nicht mit Table1 verbinden. Alternativ könntest du die Tabelle Table1 Filtern:
Delphi-Quellcode:
Table1.Filter := 'Kommentar is not Null';
Table1.Filtered := True; |
Re: SQL - Abfrage - Problem
Hi MrSpock!
Erstmal Danke für Deine Hilfe. Allerdings ist mir noch nicht klar, wie ich folgendes umsetzen soll: Zitat:
Ich habe die Zuordnung: DataSource1.DataSet -> Table1 DBGrid1.DataSource -> DataSource1 ich weiss nicht, wie ich die Query da noch verbinden soll... |
Re: SQL - Abfrage - Problem
Habe ich unter Anzeigeelement das DBGrid zu verstehen?
:gruebel: |
Re: SQL - Abfrage - Problem
Hai Christian_1980,
Zitat:
Deine TTable brauchst Du ja eigentlich nicht. |
Re: SQL - Abfrage - Problem
Hi Sharky !
Ich habe bei DataSource1.DataSet meine Query nicht zur Auswahl (nur Table1). Wenn ich da von Hand Query eintrage kommt die Meldung: Zirkuläre Datenverbindungen sind nicht erlaubt. [Edit] Unsinnig, da was von Hand einzutragen, ich weiss :stupid: [/Edit] Dann hab ich die Komponente Table1 mal ganz weggenommen, aber das ändert nix daran. :gruebel: :roll: |
Re: SQL - Abfrage - Problem
Liegt Deine Query auf demselben Formular, wie die DataSource?
Wenn ja, musst Du sie immer zur Auswahl angeboten bekommen. Ansonsten nur, wenn das Formular, bzw. Datenmodul mit der Query in der USES-Klausel des anderen Formulares aufgenommen wurde. Wie Sharky schon schrieb, benötigst Du die TTable-Komponente für diesen Zweck überhaupt nicht. :coder: |
Re: SQL - Abfrage - Problem
Hi Alfons_G
Beide Komponenten liegen auf derselben Form. Und wie ich schon schrieb: Zitat:
|
Re: SQL - Abfrage - Problem
Uff..
habe jetzt nochmal ein ganz neues Projekt angelegt und es von Grund auf so angelegt, wie ihr es gesagt habt. -> Es funktioniert. Warum das in meiner Anwendung nicht mehr ging ist mir ein Rätsel. Naja, ich danke euch für die Hilfe. Ihr seid echt :thuimb: Christian |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:00 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