Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi InputQuery Abfrage (https://www.delphipraxis.net/56415-inputquery-abfrage.html)

robby3 5. Nov 2005 12:08

Datenbank: dBase • Zugriff über: SQL

InputQuery Abfrage
 
Hallo zusammen, :-D
Ich brauche Hilfe :wall:
Ich habe 2 Datenbänke zusammengefasst, nun möchte ich mit einer InputQuery abfrage mein letzter Filter setzen Stuecklisten.Znr = InputQuery ich bekomme immer eine Fehlermeldung.
„Merkmal nicht verfügbar“

Und wie kann ich die Query Datenbank in den Editier Modus bringen um Daten ändern zu können
Ich Freue mich schon auf eure Hilfe
Robby
Hier mein Code: :gruebel:
Delphi-Quellcode:
var
stName,text_t:string;
begin
stName:='';
 text_t:='Bitte Stücklistennummer eingeben';
if InputQuery(text_t,'',stName)then

Query.sql.Text:='Select lager.* From stueckliste inner join lager on stueckliste.pos = lager.pos and stueckliste.znr = Quotedstr(stName)';
Query.active:=true;
end;

berndberndbernd5b 5. Nov 2005 12:33

Re: InputQuery Abfrage
 
hi


du musst vor dem quatedstring nen + setzen

ich würd das mit dem Filter, tabellen zusammenführen .... mit SQL machen

Union 5. Nov 2005 12:45

Re: InputQuery Abfrage
 
Entweder so:
Delphi-Quellcode:
Query.sql.Text:= 'Select lager.* From stueckliste inner join lager on stueckliste.pos = lager.pos and stueckliste.znr = '+Quotedstr(stName);
Query.active:=true;
Oder so:
Delphi-Quellcode:
Query.sql.Text:= 'Select lager.* From stueckliste inner join lager on stueckliste.pos = lager.pos and stueckliste.znr = :stName'
Query.ParamByName('stName').AsString := stName;
Query.active:=true;

robby3 5. Nov 2005 18:15

Re: InputQuery Abfrage
 
Hei bin wieder da,war auf dem Martinsmarkt
Der Tipp war prima und wie bekomme ich jetzt die Datenbank aus dem nur Lesemodus raus mit Query .Edit geht das nicht. :gruebel:
Robby

Union 5. Nov 2005 18:18

Re: InputQuery Abfrage
 
Eine Query, die Joins enthält, ist immer readonly. Wenn Du mit einer temporären Tabelle arbeitest (mit select into erstellt) musst Du darauf achten, RequestLive auf true zu setzen.

robby3 5. Nov 2005 18:29

Re: InputQuery Abfrage
 
ich habe den RequestLive auf true gesetzt, aber ich kann meine Query Datenbank nicht ändern.
Robby
:gruebel:

Union 5. Nov 2005 18:33

Re: InputQuery Abfrage
 
Nochmal: Deine Query enthält einen JOIN. Deshalb ist die Query immer readonly. Behelfen kannst Du Dir, indem Du die Query in eine Temporäre Tabelle schreibst (select into). In dieser führst Du dann Änderungen durch und zum Schluss machst Du über die ID ein Update auf die eigentliche Tabelle. Was möchstest Du denn in Deinem Besipiel ändern? "Stückliste" oder "Lager"?

robby3 5. Nov 2005 18:41

Re: InputQuery Abfrage
 
Ich möchte die Datenbank Lager ändern.
Robby

Union 5. Nov 2005 18:54

Re: InputQuery Abfrage
 
Direkt in "Lager" ändern kannst Du nur so (ungetestet):
SQL-Code:
select * from lager where lager.pos in (select stueckliste.pos from stueckliste where stueckliste.pos = lager.pos and stueckliste.znr = :stname)

robby3 5. Nov 2005 19:12

Re: InputQuery Abfrage
 
Ich habe dein Code getestet: :-D
Ich bekomme die Fehlermeldung „Table2 : das Feld ‚stname’ Wurde nicht gefunden“
Robby
:gruebel:

Union 5. Nov 2005 19:15

Re: InputQuery Abfrage
 
Es war auf den Teil vorher bezogen mit Deiner InputQuery. Das SQL muss in den SQL.Text Deiner Query und den Parameter stName musst Du wieder mit Parambyname füllen.

robby3 5. Nov 2005 19:23

Re: InputQuery Abfrage
 
Kannst Du mir ein Beispiel geben, ich stehe auf dem Schlauch :gruebel: :gruebel:
Robby :-D

Union 5. Nov 2005 19:32

Re: InputQuery Abfrage
 
Delphi-Quellcode:
var
   stName,text_t:string;
begin
   stName:='';
   text_t:='Bitte Stücklistennummer eingeben';
   if InputQuery(text_t,'',stName) then
   begin
      Query.sql.Text:= 'select * from lager where lager.pos in (select stueckliste.pos from stueckliste where '+
                       'stueckliste.pos = lager.pos and stueckliste.znr = :stname)';
      Query.ParamByName('stName').AsString := stName;
      Query.active:=true;
   end;
end;

robby3 5. Nov 2005 19:43

Re: InputQuery Abfrage
 
Ich kann aber die Datenbank Lager immer noch nicht ändern :?: :?:
Hilfe :wall:
Robby

Union 5. Nov 2005 19:52

Re: InputQuery Abfrage
 
Sorry, da hatte ich nicht nachgedacht. Du könntest dann eine zweite Query auf "Lager" nur für die Änderungen erzeugen, oder wie bereits erwähnt über eine temporäre Tabelle.

robby3 5. Nov 2005 19:56

Re: InputQuery Abfrage
 
und wie :?: :?: :?: :?: :?:
robby :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:09 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 by Thomas Breitkreuz