AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL - Abfrage - Problem
Thema durchsuchen
Ansicht
Themen-Optionen

SQL - Abfrage - Problem

Ein Thema von Christian_1980 · begonnen am 12. Nov 2003 · letzter Beitrag vom 12. Nov 2003
Antwort Antwort
Christian_1980

Registriert seit: 15. Aug 2003
50 Beiträge
 
Delphi 7 Professional
 
#1

SQL - Abfrage - Problem

  Alt 12. Nov 2003, 11:01
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:
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.
Vielen Dank schonmal,

Christian
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2

Re: SQL - Abfrage - Problem

  Alt 12. Nov 2003, 11:07
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;
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Christian_1980

Registriert seit: 15. Aug 2003
50 Beiträge
 
Delphi 7 Professional
 
#3

Re: SQL - Abfrage - Problem

  Alt 12. Nov 2003, 11:47
Hi MrSpock!

Erstmal Danke für Deine Hilfe. Allerdings ist mir noch nicht klar, wie ich folgendes umsetzen soll:

Zitat:
Du musst also deine Anzeigeelemente direkt mit der Query und nicht mit Table1 verbinden

Ich habe die Zuordnung:


DataSource1.DataSet -> Table1
DBGrid1.DataSource -> DataSource1

ich weiss nicht, wie ich die Query da noch verbinden soll...
  Mit Zitat antworten Zitat
Christian_1980

Registriert seit: 15. Aug 2003
50 Beiträge
 
Delphi 7 Professional
 
#4

Re: SQL - Abfrage - Problem

  Alt 12. Nov 2003, 11:57
Habe ich unter Anzeigeelement das DBGrid zu verstehen?

  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#5

Re: SQL - Abfrage - Problem

  Alt 12. Nov 2003, 12:01
Hai Christian_1980,

Zitat von Christian_1980:
DataSource1.DataSet -> Table1
DBGrid1.DataSource -> DataSource1
Setze doch mal DataSource1.DataSet auf Query. Dann sollte es gehen.
Deine TTable brauchst Du ja eigentlich nicht.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Christian_1980

Registriert seit: 15. Aug 2003
50 Beiträge
 
Delphi 7 Professional
 
#6

Re: SQL - Abfrage - Problem

  Alt 12. Nov 2003, 12:08
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 [/Edit]
Dann hab ich die Komponente Table1 mal ganz weggenommen, aber das ändert nix daran.


  Mit Zitat antworten Zitat
Alfons_G

Registriert seit: 7. Jun 2002
Ort: München
296 Beiträge
 
Delphi 2007 Architect
 
#7

Re: SQL - Abfrage - Problem

  Alt 12. Nov 2003, 13:52
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.

Alfons Grünewald



Alfons Grünewald
  Mit Zitat antworten Zitat
Christian_1980

Registriert seit: 15. Aug 2003
50 Beiträge
 
Delphi 7 Professional
 
#8

Re: SQL - Abfrage - Problem

  Alt 12. Nov 2003, 14:05
Hi Alfons_G

Beide Komponenten liegen auf derselben Form. Und wie ich schon schrieb:

Zitat:
Dann hab ich die Komponente Table1 mal ganz weggenommen, aber das ändert nix daran.
es geht einfach nicht
  Mit Zitat antworten Zitat
Christian_1980

Registriert seit: 15. Aug 2003
50 Beiträge
 
Delphi 7 Professional
 
#9

Re: SQL - Abfrage - Problem

  Alt 12. Nov 2003, 14:15
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



Christian
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:18 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