Hi Kiar,
Dies habe ich auch versucht. Auch bei dem Versuch gab es nach der 1. Wertzuweisung Fehler. Komischerweise wird der 1. Wert angenommen dann springt die TabellenStatus auf dsBrowse.
Villeicht ein paar Details mehr :
Zunächst hier die mySQLDB Tabellen-Struktur:
- Tabelle_1
REC_NR primärindex, autoinkrement, integer;
NAME varchar(50)
Tabelle_2
REC_NR primärindex, autoinkrement, integer;
TABELLE_1_REC_NR integer;
SUMME_1 decimal
SUMME_2 decimal
SUMME_3 decimal
Tabelle_3
REC_NR primärindex, autoinkrement, integer;
TABELLE_2_REC_NR integer;
ZAHL_1 decimal
ZAHL_2 decimal
ZAHL_3 decimal
Dann hier die Tabellen-Eigenschaften:
Delphi-Quellcode:
object Tabelle_1: TZTable
Connection = mySQLDB
CachedUpdates = False
Active = True
ReadOnly = False
TableName = 'Tabelle_1'
ShowRecordTypes = [usUnmodified, usModified, usInserted]
UpdateMode = umUpdateChanged
WhereMode = wmWhereKeyOnly
Options = [doCalcDefaults]
Left = 336
Top = 65532
object Tabelle_1REC_NR: TIntegerField
FieldName = 'REC_NR'
end
object Tabelle_1NAME: TStringField
DisplayLabel = 'Name'
FieldName = 'NAME'
Size = 50
end
end
object Tabelle_2: TZTable
Connection = mySQLDB
CachedUpdates = False
Active = True
ReadOnly = False
TableName = 'Tabelle_2'
ShowRecordTypes = [usUnmodified, usModified, usInserted]
MasterFields = 'REC_NR'
MasterSource = D_Tabelle_1
IndexFieldNames = 'TABELLE_1_REC_NR'
UpdateMode = umUpdateChanged
WhereMode = wmWhereKeyOnly
Options = [doCalcDefaults]
Left = 284
Top = 65532
object Tabelle_2REC_NR: TIntegerField
FieldName = 'REC_NR'
end
object Tabelle_2TABELLE_1_REC_NR: TIntegerField
FieldName = 'TABELLE_1_REC_NR'
LookupDataSet = Tabelle_1
LookupKeyFields = 'REC_NR'
LookupResultField = 'NAME'
KeyFields = 'TABELLE_1_REC_NR'
end
object Tabelle_2SUMME_1: TFloatField
DisplayLabel = 'Summe_1'
FieldName = 'SUMME_1'
DisplayFormat = '#0.00'
end
object Tabelle_2SUMME_2: TFloatField
DisplayLabel = 'Summe_2'
FieldName = 'SUMME_2'
DisplayFormat = '#0.00'
end
object Tabelle_2SUMME_3: TFloatField
DisplayLabel = 'Summe_3'
FieldName = 'SUMME_3'
DisplayFormat = '#0.00'
end
end
object Tabelle_3: TZTable
Connection = mySQLDB
CachedUpdates = False
AfterPost = Tabelle_3AfterPost
Active = True
ReadOnly = False
TableName = 'Tabelle_3'
ShowRecordTypes = [usUnmodified, usModified, usInserted]
MasterFields = 'REC_NR'
MasterSource = D_Tabelle_2
IndexFieldNames = 'TABELLE2_REC_NR'
UpdateMode = umUpdateChanged
WhereMode = wmWhereKeyOnly
Options = [doCalcDefaults]
Left = 456
Top = 65532
object Tabelle_3ZAHL_1: TFloatField
DefaultExpression = '0.00'
FieldName = 'ZAHL_1'
DisplayFormat = '#0.00'
end
object Tabelle_3ZAHL_2: TFloatField
DefaultExpression = '0.00'
FieldName = 'ZAHL_2'
DisplayFormat = '#0.00'
end
object Tabelle_3ZAHL_3: TFloatField
DefaultExpression = '0.00'
FieldName = 'ZAHL_3'
DisplayFormat = '#0.00'
end
end
Einziger Index ist jeweils REC_NR und wird beim TabellenVerknüpfung (Master.Eigenschaft) benutzt aber sonst im Programm nicht verwendet.