![]() |
Zitat:
|
Zitat:
Wenn also ein neuer Artikel angelegt wird, wird ersteinmal der Lagerbestand auf 0 gesetzt. Wenn nun dieser Artikel im Wareneingang gebucht wird : - erzeugst Du in deiner Lagerwebewegung-Tabelle einen Eintrag mit den Daten - Änderst Du (wenn Du es denn möchtest) den Bestand in der Tabelle deiner Artikel. |
Hi,
wir posten aneinander vorbei! Nochmal anders: Du musst doch irgendwo eingeben welche Artikel in Deinem Lager sind, oder? Dazu machst Du doch sicherlich ein Formular in dem der User neue Artikel anlegen kann, bzw. bei bestehenden Artikel die Menge editieren kann u. ä. Für dieses Formular wirst Du doch sicherlich eine TDataSet/TIBDataSet/TirgendwasDataSet verwenden um die Daten die schon erfasst sind, anzeigen zu lassen, d.h. Du setzt visuelle DB-Komponenten (TDBEdit, ....) auf das Formular und verbindest das mit der TDataSet. So und jetzt kommen wir wieder zum eigentlichen Thema: In diesem Szenario wirst Du der TDataSet in die SelectSQL-Eigenschaft so eine ähnliche SQL eingeben:
Code:
Mit einem RMK (rechten Mausklick) kannst Du dann (zumindest bei IBX) einen Editor öffnen, in dem Du die Insert, Update, Delete und Refresh-SQL Statements automatisch erzeugen lassen kannst. Dann musst Du nur noch die TDataSet mit der Datenbank verbinden und schon kannst Du loslegen. In Diesem Fall sorgt die TDataSet selbst dafür, dass bei einem Aufruf der Methoden Insert/Edit/Post/Delete die entsprechende SQL die du eingegeben/erzeugt hast ausgeführt wird.
Select * from Lager;
Nun zum großen Unterschied: Wenn du selbst einfach so ein Insert-Statement ausführen willst, ohne eine vorbereitete TDataSet zu haben (wie oben), dann musst Du das entsprechende SQL-Statement auch anders ausführen: entweder in einer TQuery (dann ist eigentlich alles klar) oder eben in einer TDataSet. Dann musst du das Statement eben in die SelectSQL eingeben und dann mittels ExecSQL ausführen. Da spielt es dann keine Rolle was in der Tabelle schon drinsteht, bzw. dass die Eigenschaft des TDataSet "SelectSQL" heißt obwohl Du eine Insert oder Delete-Anweisung eingibst. Denn diese SelectSQL wird bei ExecSQL verwendet und ausgeführt. Grüße Lemmy |
Zitat:
@Lemmy: Deine Frage vorher habe ich nicht sofort verstanden. Es geht um nicht visuelle Sachen. Das soll hinter den Kulissen laufen. |
Zitat:
Ich vermute mal Du meinst folgendes: Das Lager bekommt einen Zugang der Menge x des Artikels y:
|
Zitat:
|
hmm,
du prüfst ja eh mit select ob was da ist da kannst du dass vorhanden ja auch auslesen und dann den zugang addieren und wieder reinschreiben mit Update. Bei leeren Mengen musst du darauf achten ob die DBSpalte NULL sein darf oder auf NOT NULL steht.Achtung '' also ein Leerstring ist nicht NULL.
|
Re: hmm,
Zitat:
|
hmm,
naja wenn halt die Zeile schon da ist recordcount > 0 dann UPDATE, ansonste INSERT
|
Re: hmm,
Zitat:
Code:
nur mal so nebenbei bemerkt. 8) Lemmy hat mich mit seinen leeren Datenmengen trotzdem verwirrt. Lemmy, wo bist Du :?:
IsEmpty
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 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