Opdatering af ClientDataSet
Jeg har et SQL-script der joiner mellem flere tabeller. Det betyder at nogle felter er R/O mens andre skal skrives til databasen. Jeg har en primærnøgle og behøver ikke lede efter recorden der skal opdateres.Konstruktionen er: TwwDataSource.DataSet := TClientDataSet.Provider := TDataSetProvider.DataSet := TADOQuery
TDataSetProvider.UpdateMode = upWhereKeyOnly
og i TClienDataSet'ets felter er TField.ProviderFlags = [pfInUpdate] for de der skal opdateres, mens primærnøglefeltets står til [pfInUpdate,pfInWhere,pfInKey]. Resten af felterne er [] for de skal ikke med i scriptet der genereres.
Sådan jeg læser den sparsomme dokumentation så er det måden at gøre det på - men det fejler. Primærnøglen er et autoinc-felt og når jeg debugger så er Field.Value = Null og sammenligner jeg adressen på feltet i TClientDataSettet før ApplyUpdate og inde i Provider-unitten, så er adressen forskellig. Desuden er ProviderFlaget pludselig [pfInUpdate,pfInWhere]. Noget kunne tyde på at felterne kopieres, men at der er fejl i kopieringen.
Hvis der sidder en ClientDataSet ekspert kan jeg godt bruge et svar (et brugbart et altså)
