![]() |
2 kleine Datenbank fragen
Hallo ,
Weis einer von euch wie der Syntax lauten muss , wenn ich einer Datenbank einen Eintrag aktualisieren will. Bei meinem Programm gibt es eine Auftragsnummer , die sich immer ändert wenn man einen Button drückt Also immer n+1 Wie muss ih das lösen , dass diese Auftragsnummer immer gespeichert wird und beim nächsten programmstart wieder angezeigt wird ? Mit freundlichen Grüßen Iron |
AW: 2 kleine Datenbank fragen
Mit einem SQL-Statement:
z. B.:
Code:
Je nach verwendeten DBMS weicht die genaue SQL-Syntax etwas ab.
INSERT INTO dbname (feldname) VALUES ("Wert")
|
AW: 2 kleine Datenbank fragen
Das mit dem INSERT INTO funktioniert leider nicht, da kommt immer dass die Zeile schon einen Wert enthält
Werde später mal kurz den Programm Code posten |
AW: 2 kleine Datenbank fragen
Zitat:
Opps, ich meinte nicht INSERT (fügt einen neuen Datensatz ein) sondern UPDATE. Sorry :oops:
Code:
UPDATE
table_name SET column1 = value1, column2 = value2,... WHERE some_column = some_value; ![]() |
AW: 2 kleine Datenbank fragen
@ironman
Geht's um eine Auftragsverwaltung, in der eine fortlaufende Auftragsnummer vonnöten ist? Das löst du mit einem AutoInc-Feld. Welche Datenbank verwendest du? Multi-User oder Single-User-Datenbank? |
AW: 2 kleine Datenbank fragen
Ja genau es handelt sich um eine Auftragsnummer.
Ich verwende SQLite
Delphi-Quellcode:
SQLQuery1.Close;
SQLQuery1.SQL.Text:='INSERT INTO tblvar (Auftragsnummer) VALUES (NULL, :Auftragsnummer)'; SQLQuery1.ParamByName('Auftragsnummer').AsString:= IntToStr(v) ; SQLQuery1.ExecSQL; SQLTransaction1.commit; Das wäre mein Code (v) errechne ich immer durch v:=v+1; |
AW: 2 kleine Datenbank fragen
Für Auftrags-, Rechnungs-. etc. Nummern habe ich bisher niemals AutoInc Felder gesehen.
Jeder Beleg hatte eine eindeutige ID (für die interne Verwaltung) welche mit einem AutoInc eindeutig gehalten wurde. Die Belegnummernvergabe wurde aber anders gelöst. z.B. mit einer Tabelle für diese Letzten Nummern. Mit Sqlite z.B. so:
SQL-Code:
Um garantiert keine Lücken innerhalb einer Periode zu bekommen, sollte man innerhalb dieser Transaktion auch gleich den gesamten Beleg speichern ;)
begin transaction;
update Value set Value = Value + 1 where Section="RECH"; select Value from LastNumbers where Section="RECH"; commit; |
AW: 2 kleine Datenbank fragen
So siehts momentan aus:
Delphi-Quellcode:
Bei der OnCreate Methode lass ich v auf den Wert der Tabelle setzten.
v:=v+1;
Label16.caption:=IntToStr(v); SQLQuery1.Close; SQLQuery1.SQL.Text:='UPDATE tblvar SET (Auftragsnummer) VALUES ( :Auftragsnummer)'; SQLQuery1.ParamByName('Auftragsnummer').AsString:= IntToStr(v) ; SQLQuery1.ExecSQL; SQLTransaction1.commit; Aber irgendwie funktioniert das so nicht :( Edit: Ich hab mir gerade einen neuen Ansatz überlegt, da ja die Auftragsnummer mit dem Patient verknüpft werden muss. Anstatt die Auftragsnummer in einer extra Tabelle zu speichern kann ich die ja auch in die Patiententabelle mit reinspeichern und wenn ich dann das Programm wieder öffne, den letzten Eintrag auslesen und dann 'letzter Eintrag +1' Oder geht das so nicht ? Gruß iron |
AW: 2 kleine Datenbank fragen
Zitat:
Offenbar möchtest du eine Praxis-Verwaltungssoftware schreiben. Da wäre es hilfreich, sich zuerst einmal die bekannten und in scharfer Konkurrenz zueinander stehenden Produkte anzuschauen. Medizinische Betriebe – also Ärzte, Krankengymnastik-Betriebe usw. – unterliegen gewissen Bestimmungen hinsichtlich ihrer Verwaltungssoftware. Dazu gehören u.a. eine übersichtliche Terminverwaltung, Patientenverwaltung, Therapieverwaltung, Auftragsverwaltung, Rechnungsverwaltung, Rezeptverwaltung, Krankenkassen-Abrechnungsverwaltung, Kartenlese-Einheit und vieles mehr. Wie diese Bestimmungen genau sind, solltest du vielleicht vor Entwicklungsbeginn recherchieren. |
AW: 2 kleine Datenbank fragen
Nein nein, so profesionell soll das Programm gar nicht werden, dafür haben wir andere.
Das Programm dient zum ,, Laufzettel" schreiben für ein Produkt was Hausintern gefertigt wird. Der Zettel dient nur um die Kiste zu beschriften, und eben um ein paar Daten dem Patient zu zu ordnen. Dieser wird am Ende des Produktionsprozesses wieder entsorgt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 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-2025 by Thomas Breitkreuz