Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Update will nicht so recht (https://www.delphipraxis.net/110888-update-will-nicht-so-recht.html)

sventeq 26. Mär 2008 10:45

Datenbank: Paradox • Version: 9 • Zugriff über: Query

Update will nicht so recht
 
Hallo, hab folgndes Problem. Ich will einen Wert einer Tabelle ändern, doch meine UPDATE-Anweisung bringt mir immer wieder die Fehlermeldung, dass in Zeile 1 ein ungültiges Schlüsselwort ist und zwar das Komma ",".

Hier die Anweisung:

UPDATE ":kapadb:stckz001.DB" D, ":kapadb:Stckz002.DB" D1 SET (D1.Plantag = :plantag)
WHERE
(D.istkostenstelle = :kst)
AND (D1.Jahr = D.Jahr)
AND (D1.Auftrag = D.Auftrag)
AND (D1."Position" = D."Position")
AND (D1."Lfd-nr" = D."Lfd-nr")
AND (D1."Stücklisten Nr" = D."Stücklisten Nr")
AND (D1."Plan" = D."Plan")
AND (D1.Nr = D.Nr)
AND (D1.Gang = D.Gang)
AND (D1.KW = :woche)
AND (D1.Jahr = :jahr)
GROUP BY D1.plantag, D1.Jahr, D1.KW, D1.Auftrag, D1."Position"
ORDER BY D1.plantag, D1.Jahr, D1.KW, D1.Auftrag, D1."Position"

die Verknüfung der beiden Tabellen muss sein, damit ich die richtigen Datensätze treffe.
Ich habe diese Anweisung von einer SELECT-Anweisung abgeleitet, die einwandfrei funzt.
Für Hilfe wäre ich wirklich dankbar.

hoika 26. Mär 2008 10:51

Re: Update will nicht so recht
 
Hallo,

im Update darf nur eine Tabelle stehen.

Update Table1 Set bla

Die Joins wie im Select sind nicht erlaubt.

Due könntest ein SubSelect benutzen,
aber das ist schon bei nornalen DB's (SQL) langsam,
unter Paradox ist es nicht ab einer gewissen Datenmenge zu gebrauchen.

Abhilfe wäre die Daten per Select in eine Liste zu laden
und dann einzeln Upzudaten.


Heiko

sventeq 26. Mär 2008 10:59

Re: Update will nicht so recht
 
Zitat:

Zitat von hoika
Hallo,

im Update darf nur eine Tabelle stehen.

Update Table1 Set bla

Die Joins wie im Select sind nicht erlaubt.

Due könntest ein SubSelect benutzen,
aber das ist schon bei nornalen DB's (SQL) langsam,
unter Paradox ist es nicht ab einer gewissen Datenmenge zu gebrauchen.

Abhilfe wäre die Daten per Select in eine Liste zu laden
und dann einzeln Upzudaten.


Heiko

Danke für den Tipp, aber wie muss ich mir das vorstellen, die Felder einzeln Upzudaten? Die Datenmenge ist ja per SELECT nur zum Lesen geöffnet. Die Daten sind jetzt in einem DBGrid dargestellt. Kann ich sie hier verändern, oder wie meinst du es, die Daten in eine Liste zu laden.
Sven

grenzgaenger 26. Mär 2008 11:20

Re: Update will nicht so recht
 
wie hoika bereits sagte, kannst du nur eine tabelle updaten. was du jedoch machen kannst, in der where klausel die selektion entsprechend vorzunehmen. da hast du alle möglichkeiten. <HTH>

sventeq 26. Mär 2008 13:31

Re: Update will nicht so recht
 
Zitat:

Zitat von grenzgaenger
wie hoika bereits sagte, kannst du nur eine tabelle updaten. was du jedoch machen kannst, in der where klausel die selektion entsprechend vorzunehmen. da hast du alle möglichkeiten. <HTH>

Bin echt noch Anfänger, wie meinst du das in der WHERE-Klausel die Selektion vornehmen?
Sven

hoika 26. Mär 2008 13:43

Re: Update will nicht so recht
 
Hallo,

sage doch einfach mal,
was du konkret machen willst.

Wie ich schon sagte,
machst du dir mit Paradox keine Freunde,
wenn du komplexe Queries benutzt
(naja, auch sonst nicht ;) )


Heiko

sventeq 26. Mär 2008 15:14

Re: Update will nicht so recht
 
Zitat:

Zitat von hoika
Hallo,

sage doch einfach mal,
was du konkret machen willst.

Wie ich schon sagte,
machst du dir mit Paradox keine Freunde,
wenn du komplexe Queries benutzt
(naja, auch sonst nicht ;) )


Heiko

ich muss nur das Datum im Feld Plantag ändern können. Aber das ist nicht so einfach, weil der Schlüssel über etwa 9 Felder geht und es sehr viel Einträge gibt. Was Paradox angeht, da hab ich keine Wahl. Paradox ist Vorgabe für mich! Werde es mal über verknüpte Tabellen versuchen und dann den Datensatz mit Edit und Post verändern. Danke aber für eure Hilfe, das man bei nur eine Tabelle auf einmal updaten kann, ist schon mal wichtig zu wissen.

Sven

hoika 26. Mär 2008 15:18

Re: Update will nicht so recht
 
Hallo,

Pdx ist ein alter Bekannter für mich (graus ;) ).
Versuche so viel wie möglich mit TTable zu machen,
TQuery ist extrem lahm (ok, kommt immer auf die Query an).

Lade einfach alle upzudatenden Daten in eine TList,
und mache das dann über TTable für jeden Datensatz einzeln.


Heiko


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