Hallo Leute!
Hab hier eine Master/Detail Beziehung Rechnung und Rechnungspositionen
das sind bei mir zwei Query-, zwei DataSource- und zwei Update-Komponenten
Die Beziehung zwischen den zwei Tabellen ist über das Feld rechnung_id realisiert
In meinen Controls die, die RechnungPosition repräsentieren (ein DBGrid mit DBNavigator) habe ich natürlich keine Spalte für rechnung_id (Wozu auch). Aber natürlich muss bei einem Insert die rechnung_id mit. Steht auch als Parameter in der Insert-SQL der update-Kompo.
Eigenschaften von updRePos.Params[0]
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| DataType = ftInteger Name = rechnung_id NumericScale = 0 ParamType = ptInput Precision = 0 Size = 0 Value = 0 Type = Integer |
Abwechselnd habe ich in den BeforePost - Event von qrRePos bzw. in OnDataChange von dsRePos folgendes gechrieben
Delphi-Quelltext
1:
| updRePos.Params.ParamByName('rechnung_id').AsInteger := StrToInt(dbeRechnungsnummer.Text); |
oder
Delphi-Quelltext
1:
| updRePos.Params[0].Value := StrToInt(dbeRechnungsnummer.Text); |
immer wieder beschwert sich der Firebird das ich ihm eine NULL unterjubeln will
Ich hab's zwar so gelöst das ich im o.g. onDataChange-Event den kompletten Insert-SQL der update-Kompo austausche. Aber das ist nicht das was ich eigentlich will. Finde es unschön.
Warum will der meine Parameter nicht akzeptieren?
Gruß öki