Bonjour
Les TField n'ont rien à voir avec les unités ADO, Le BDE et IB utilisent aussi l'unité Db qui contient ces TField
Pourtant il me semble que cela a tout e même un peu a voir avec ADO dans l'unité ADOdb on voit que l'objet CustomADODataset redefini la méthode GetStateFieldValue comme ci desous
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
function TCustomADODataSet.GetStateFieldValue(State: TDataSetState;
Field: TField): Variant;
begin
if IsEmpty or not (Self.State in [dsBrowse, dsEdit]) then
Result := Null
else
begin
UpdateCursorPos;
case State of
dsOldValue:
Result := Recordset.Fields[Field.FieldNo-1].OriginalValue;
dsCurValue:
Result := Recordset.Fields[Field.FieldNo-1].UnderlyingValue;
else
Result := inherited GetStateFieldValue(State, Field);
end;
end;
end; |
Il me semble que mon problème vient plutot du fait que il faut utiliser
MaQuery.Recordset.resync(1,1)
avant d'accèder à ces propriétés comme le montre JM Rabilloud dans sa doc sur ADO paragraphe
Similaire au moteur de curseur
mais pour l'instant je bloque sur ce resync car j'utilise une vue ou des procedures stockées comme source de mes ADOQuery, bizarement j'y parviens bien avec les PS avec
1 2 3
|
AdoQuery1.Properties['Unique Table'].value := 'T_DEVPART_DPT';
AdoQuery1.Recordset.Properties['Resync Command'].Value := 'EXEC Usp_Dev_Get_Devpart_Princ_Resync ?'; |
mais pas avec les vues
Partager