![]() |
Datenbank: Paradox • Version: 7 • Zugriff über: TQuery, TDataSource
Nummernkreise
Hi,
auf der Form Einstellungen möchte ich die Anfangswerte für BelegNummern eingeben und den jeweiligen Edits auf den Forms zuweisen.
Delphi-Quellcode:
Mit diesem Code hat es leider nicht geklappt.
procedure TFEinstellungen.EditRNr.Change(Sender: TObject);
begin //Anfangswert für Rechnungen FRechnungen.QueryRechnungen.FieldByName('RNr').asInteger:= StartKey('RNr', 'Einstellungen'); end; Wer kann mir bitte in dieser Sache weiterhelfen? Gruß Lombi |
Re: Nummernkreise
Hallo Lombi,
ich würde erstens kein DB-Code direkt in Forms ausführen. Das macht den Code unübersichtlich und schwer portierbar. Weil du ja demnächst weg von Paradox musst ;) Der Code ist ansonsten viel zu wenig, um einen Fehler zu finden. Aber naja. Bsp.-Code mit einer anderen Query Ich gehe mal davon aus, dass die Tabelle "Einstellungen" nur einen Record haben soll das Feld "RNr" heisst.
Delphi-Quellcode:
procedure SetNo(const theNumber: Integer);
var bExists: Boolean; begin with Query do begin // Anzahl der Records prüfen SQL.Clear; SQL.Add('Select Count(*) From Einstellungen'); Open; try bExists:= Fields[0].AsInteger>0; finally Close; end; // update oder insert SQL.Clear; if bExists then begin SQL.Add('Update Einstellungen Set RNr=:RNr'); end else begin SQL.Add('Insert Into Einstellungen(RNr) Values(:RNr)'); end; ParamByName('RNr').AsInteger:= theNumber; ExecSQL; end; end; Heiko |
Re: Nummernkreise
Hallo hoika,
wenn man jetzt noch das Add weglässt, wird es noch übersichtlicher... (dann ist auch der Umstieg auf andere Komponenten leichter, dort ist man nämlich wieder von TStrings weggegangen)
Delphi-Quellcode:
Gruss
procedure SetNo(const theNumber: Integer);
var bExists: Boolean; begin // Anzahl der Records prüfen Query.SQL.Text:= 'SELECT COUNT(*)'#13 + 'FROM Einstellungen'; Query.Open; try bExists:= (Query.Fields[0].AsInteger > 0); finally Query.Close; end; // update oder insert if bExists then Query.SQL.Text:= 'UPDATE Einstellungen'#13 + 'SET RNr = :RNr' else Query.SQL.Text:= 'INSERT INTO Einstellungen(RNr)'#13 + 'VALUES(:RNr)'; Query.ParamByName('RNr').AsInteger:= theNumber; Query.ExecSQL; end; Thorsten |
Re: Nummernkreise
Hallo Heiko + Thorsten,
danke für Eure Nachricht. Ich habe mir das so vorgestellt, dass ich auf die FormEinstellungen alle Anfangswerte für die Belege setze: z.B.: Lieferscheine ab Nr.: (TEditLSNr) Rechnungen ab Nr : (TEditRNr) ... Dazu habe ich in der Datenbankoberfläche die TabelleEinstellungen ange- legt: Bezeichnung A(lphaNumerisch) z.B.: RechnungsNr.. Anfangswert I(nteger) Wäre das denn so in Ordnung? Gruß Lombi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 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