Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi 2 kleine problemlichen mit dem Query (https://www.delphipraxis.net/84709-2-kleine-problemlichen-mit-dem-query.html)

mafiaente 20. Jan 2007 13:56

Datenbank: paradox7 • Zugriff über: table,query

2 kleine problemlichen mit dem Query
 
also wie shcon im thema erwähnt! ich hab 2 kleine probleme bzw. fragen:

1. kann es sein, dass das mit dem query bezogen auf ne tabelle nicht funktioniert, wenn diese ein memo-feld beinhaltet? hatte da n prob un das mit dem query hat ewig nich geklappt, erst als ich die datensätze mit dem memo entfernt hatte!

2. ich möchte beim query die funktion SELECT * FROM ... WHERE ...=... nutzen. so auf jeden fall soll nach dem WHERE die eine spalte "kategorie" gefiltert werden. der filterwert müsste demnach ja ein string sein un soll aus einer DBLookUpComboBox stammen, also hätt ich mir gedacht das man die zeile so schreiben kann:

Delphi-Quellcode:
SELECT * FROM artikel WHERE kategorie=DBLookUpComboBox1.keyvalue
bzw.
Delphi-Quellcode:
begin
Query1.Active:=false;
  Query1.Sql.Clear;
  Query1.Sql.Add('SELECT * FROM artikel.db WHERE kategorie=kategorie=DBLookUpComboBox1.keyvalue');
  Query1.Active:=true;
end;
es komtm aber nur die fehlermeldung, "ungültiges schlüsselwort..." ich versteh einfach nich wie ich die abfrage sonst gestalten kann mit der combobox?

hoffe mir kann jmd helfen! thx schonma im vorraus

Christian Seehase 20. Jan 2007 14:02

Re: 2 kleine problemlichen mit dem Query
 
Moin mafiaente,

wie ist es so:

Delphi-Quellcode:
Query1.Sql.Add('SELECT * FROM artikel.db WHERE kategorie='+DBLookUpComboBox1.keyvalue);
?

ManuelR 20. Jan 2007 14:07

Re: 2 kleine problemlichen mit dem Query
 
Hallo,


wenn kategorie ein string ist muss er auf jeden Fall in HOchkommata gesetzt werden

z.B. so:

'Select * from Artikel where Kategorie = ' + #39 + StringVariable + #39

stifflersmom 20. Jan 2007 14:14

Re: 2 kleine problemlichen mit dem Query
 
Zitat:

Zitat von ManuelR
'Select * from Artikel where Kategorie = ' + #39 + StringVariable + #39

finde ich persönlich nicht so schön,
ich benutze imme QuotedStr

also:
Delphi-Quellcode:
'Select * from Artikel where Kategorie = ' + QuotedStr(MeinString);
Moin

ManuelR 20. Jan 2007 14:23

Re: 2 kleine problemlichen mit dem Query
 
Hallo

Zitat:

finde ich persönlich nicht so schön,
Stimmt, aber es kommt dasselbe heraus und darauf kommt ja an.

mafiaente 20. Jan 2007 14:33

Re: 2 kleine problemlichen mit dem Query
 
ok vielen dank füreure schnellen antworten! ich hoffe ich bekomme es jetz hin...

marabu 20. Jan 2007 15:40

Re: 2 kleine problemlichen mit dem Query
 
Hallo,

die beiden Meinungen zur alternativen Parameterübergabe in SQL-Statements möchte ich trotzdem noch kurz aufgreifen:

Zitat:

'Select * from Artikel where Kategorie = ' + #39 + StringVariable + #39
finde ich persönlich nicht so schön, ich benutze imme QuotedStr
Zitat:

Stimmt, aber es kommt dasselbe heraus und darauf kommt ja an.
Es ist keine Frage von Schönheit, für welche dieser Ersatzlösungen (die "beste" Lösung ist der Parameter-Mechanismus der Query) man sich erwärmt. Am Beispiel des Auktionshauses Christie's:

Delphi-Quellcode:
var
  s, x, u: String;
begin
  s := 'Christies''s';
  x := #39 + s + #39; // liefert 'Christie's'
  u := QuotedStr(s); // liefert 'Christie''s'
  if x <> u then
    ShowMessage('Lasst euch kein X für ein U vormachen');
end;
Ohne QuotedStr() wird kein valides Statement produziert, wenn ein Apostroph Bestandteil der Daten ist.

Freundliche Grüße

mafiaente 21. Jan 2007 11:37

Re: 2 kleine problemlichen mit dem Query
 
also das mit dem filtern klappt jetz so wie ich das will, aber schon steh ich vor nem neuen problem!
wenn ich in der ausgangstabelle "artikel.db" daten hinzufüge, gibt der query die nich aus! der bleibt immer auf dem einen stand, die neuen daten werden gar nich berücksichtigt...wo is da der fehler? versteht ihr was ich mein?

mkinzler 21. Jan 2007 11:41

Re: 2 kleine problemlichen mit dem Query
 
Du mußt dem Query sagen, daß er auf Veränderungen reagieren soll, in dem du .RequestLive auf True setzt.

marabu 21. Jan 2007 11:54

Re: 2 kleine problemlichen mit dem Query
 
Hallo Markus,

RequestLive = True ist eine notwendige Voraussetzung für ein erfolgreiches Query.Refresh() - aber ohne ein Refresh() wird es wohl nicht funktionieren.

Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:15 Uhr.
Seite 1 von 4  1 23     Letzte »    

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