Autor Beitrag
oeki
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Do 02.08.07 22:05 
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]

ausblenden 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

ausblenden Delphi-Quelltext
1:
     updRePos.Params.ParamByName('rechnung_id').AsInteger := StrToInt(dbeRechnungsnummer.Text);					


oder
ausblenden 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