Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL Einträge nach variable auswählen (https://www.delphipraxis.net/115137-sql-eintraege-nach-variable-auswaehlen.html)

XAguraX 6. Jun 2008 15:25

Datenbank: MyBASE • Zugriff über: Delphi

SQL Einträge nach variable auswählen
 
Hi,
wie kann ich eine Datenbank sortieren nach:
-Es wird nur angezeit bei welchem eintrag das Feld 'Datum' den Wert des heutigen Datums hat
-Es wird nur angezeigt bei welchem eintrag das feld 'Datum' den Wert der variable a hat ???

Kann mit da bitte einer helfen ???
Will das ganze mit einem Query machen ...

XAguraX

mkinzler 6. Jun 2008 15:26

Re: SQL sortieren nach variable
 
SQL-Code:
select ... order by <Feld>;

DeddyH 6. Jun 2008 15:28

Re: SQL sortieren nach variable
 
Zitat:

Zitat von XAguraX
-Es wird nur angezeit bei welchem eintrag das Feld 'Datum' den Wert des heutigen Datums hat
-Es wird nur angezeigt bei welchem eintrag das feld 'Datum' den Wert der variable a hat ???

Was hat das mit Sortierung zu tun :gruebel: ?

Hansa 6. Jun 2008 15:30

Re: SQL sortieren nach variable
 
Du musst Parameter verwenden. Kurz und bündig :

SQL-Code:
SELECT .. FROM TABLEX WHERE DATUM = :DATUM
Der Parameter Datum muss in deinem Programm natürlich noch bestückt werden :

Delphi-Quellcode:
DataSet1.ParamByName ('DATUM').AsDate := DatumVar;
@mkinzler : Du hast die Variable vergessen. Warst zu schnell. :mrgreen:

XAguraX 6. Jun 2008 15:40

Re: SQL sortieren nach variable
 
Zitat:

Zitat von Hansa
Du musst Parameter verwenden. Kurz und bündig :

SQL-Code:
SELECT .. FROM TABLEX WHERE DATUM = :DATUM
Der Parameter Datum muss in deinem Programm natürlich noch bestückt werden :

Delphi-Quellcode:
DataSet1.ParamByName ('DATUM').AsDate := DatumVar;
@mkinzler : Du hast die Variable vergessen. Warst zu schnell. :mrgreen:

Danke. Das oben scheint zu gehen aber immer wenn ich dann Filtern will dann kommt die Meldung:
Tabelle nicht gefunden
Verzeichnis nicht gefunden...
//Hier kommen dann ein paar angaben zu pfaden

Kann mir da einer helfen ???
Weiß nemme weiter

XAguraX

mkinzler 6. Jun 2008 15:44

Re: SQL Einträge nach variable auswählen
 
Wie nach was, filterst du?

XAguraX 6. Jun 2008 15:46

Re: SQL Einträge nach variable auswählen
 
Zitat:

Zitat von mkinzler
Wie nach was, filterst du?

Ich habe eine Liste Wo ein Paar sachen drinstehen und ein DATUM
So nun will ich wenn man auf einen button Clickt das in dem DbGrid1 nurnoch die einträge angezeigt werden wo
das Datum dort mit MonthCalendar1.Date übereinstimmt ...

Daran scheitere ich jedoch ...

XAguraX

mkinzler 6. Jun 2008 15:47

Re: SQL Einträge nach variable auswählen
 
Und wie sieht das im Code aus?

XAguraX 6. Jun 2008 15:48

Re: SQL Einträge nach variable auswählen
 
Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
begin
Query1.Active:=false;
Query1.Sql.Clear;
Query1.SQL.Add('SELECT * FROM Termine WHERE Datum = :a ');
Query1.ParamByName('a').AsDate := MonthCalendar1.Date;
Query1.Active:=true;
end;

RavenIV 6. Jun 2008 15:52

Re: SQL sortieren nach variable
 
Zitat:

Zitat von XAguraX
Kann mir da einer helfen ???
Weiß nemme weiter

Dann zeig mal her, was Du an Quellcode schon zusammen gebastelt hast.
Ohne Code ist das immer etwas schwer zu beurteilen.

mkinzler 6. Jun 2008 15:52

Re: SQL Einträge nach variable auswählen
 
Hast du im Query auch den richtigen Datenpfad eingestellt?

Btw. Bei Parametern reicht es nach dem Prepare den Parameter zu setzen
Delphi-Quellcode:
    Query1.SQL.Text := 'SELECT * FROM Termine WHERE Datum = :datum;';
    Query.Prepare;
...
procedure TForm1.Button4Click(Sender: TObject);
begin
    Query1.Close;
    Query1.ParamByName('datum').Value := MonthCalendar1.Date;
    Query1.Open
end;

XAguraX 6. Jun 2008 15:57

Re: SQL Einträge nach variable auswählen
 
Zitat:

Zitat von mkinzler
Hast du im Query auch den richtigen Datenpfad eingestellt?

Btw. Bei Parametern reicht es nach dem Prepare den Parameter zu setzen
Delphi-Quellcode:
    Query1.SQL.Text := 'SELECT * FROM Termine WHERE Datum = :datum;';
    Query.Prepare;
...
procedure TForm1.Button4Click(Sender: TObject);
begin
    Query1.Close;
    Query1.ParamByName('datum').Value := MonthCalendar1.Date;
    Query1.Open
end;

Nun wo muss man das mit dem Datenpfad einstellen weil jetzt kommt immer Unbekannte Datenbank ... :wall:

XAguraX

DeddyH 6. Jun 2008 15:58

Re: SQL Einträge nach variable auswählen
 
Ich hab von MyBase keinen Plan, aber AFAIR ist die doch in der OH beschrieben.

RavenIV 6. Jun 2008 16:02

Re: SQL Einträge nach variable auswählen
 
Zitat:

Zitat von XAguraX
Nun wo muss man das mit dem Datenpfad einstellen weil jetzt kommt immer Unbekannte Datenbank ... :wall:

XAguraX

Könnte sein, dass Du noch eine Connection oder Transaction brauchst.
Dort kannst Du dann bestimmt den Pfad zum DB-File eintragen.

XAguraX 6. Jun 2008 16:11

Re: SQL Einträge nach variable auswählen
 
Zitat:

Zitat von RavenIV
Zitat:

Zitat von XAguraX
Nun wo muss man das mit dem Datenpfad einstellen weil jetzt kommt immer Unbekannte Datenbank ... :wall:

XAguraX

Könnte sein, dass Du noch eine Connection oder Transaction brauchst.
Dort kannst Du dann bestimmt den Pfad zum DB-File eintragen.

Ähm und wie mache ich das ?

XAguraX 6. Jun 2008 16:45

Re: SQL Einträge nach variable auswählen
 
Also wenn ich nun auf den Button drücke kommt folgende Fehlermeldung:
Unbekannte Datenbank Alias: Termine.
:wall: :wall: :wall: :wall:

Kann mir bitte jemand sagen wie ich das problem lösen könnte ???
XAguraX

Hansa 6. Jun 2008 20:27

Re: SQL Einträge nach variable auswählen
 
Wo kommt der Alias her ? Da liegt wohl der Hund begraben. Du kommst nicht drumrum, die Problematik zu reduzieren. Von DataModule ist nichts zu sehen. Also : verwende das und packe da drauf ein TDatabase, TTransaction, TDataset. Stelle die DB in dem TDatabase etc. im OI ein. Rest wie genabt. Davon abgesehen würde ich zuerst mit einem DB-Admin-Tool den SQL-Befehl kontrollieren. Geht das schon nicht richtig, dann wirst du dich in deinem Programm dumm und dämlich suchen, um da draufzukommen. :angel2:

mkinzler 6. Jun 2008 20:33

Re: SQL Einträge nach variable auswählen
 
Mit welchem DBMS setzt du das DataSet ein?

Hansa 6. Jun 2008 20:39

Re: SQL Einträge nach variable auswählen
 
Siehe 1. Posting. Das DataModule nicht zu verwenden ist so oder so trotzdem Fehler.

mkinzler 6. Jun 2008 20:45

Re: SQL Einträge nach variable auswählen
 
Existiert die entsprechende Xml-Datei und verweist .FileName darauf?

XAguraX 7. Jun 2008 13:51

Re: SQL Einträge nach variable auswählen
 
Zitat:

Zitat von mkinzler
Existiert die entsprechende Xml-Datei und verweist .FileName darauf?

Ja :(

DeddyH 7. Jun 2008 14:03

Re: SQL Einträge nach variable auswählen
 
Kann es sein, dass das alles mit MyBase gar nicht geht?

Hansa 7. Jun 2008 14:45

Re: SQL Einträge nach variable auswählen
 
Zeige mal die Deklaration des DataModuls oder der Form, wo die DB Komponenten draufliegen. Am besten mitsamt mit der entsprechenden DFM.

//Edit1

Ich sehe da noch was :

Zitat:

Zitat von XAguraX
Delphi-Quellcode:
    Query1.SQL.Text := 'SELECT * FROM Termine WHERE Datum = :datum;';
    Query.Prepare;

Mache mal in der Select-Zeile den ";" weg. Nicht, dass sich MyBase daran noch verschluckt. Das prepare ist eventuell auch überflüssig. Dürfte allerdings DB-abhängig sein. Deshalb : auskommentieren.

// Edit2

Wieso kommt da eigentlich XML ins Spiel ? Über MyBase ist auch auf Anhieb kaum was zu googeln.

mkinzler 7. Jun 2008 19:49

Re: SQL Einträge nach variable auswählen
 
Zitat:

Wieso kommt da eigentlich XML ins Spiel ? Über MyBase ist auch auf Anhieb kaum was zu googeln.
Weil MyBase (TClientDataSet) entweder per Provider mit anderen DataSets verbunden wird oder lokal auf eine Xml-Datei.


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