I downloaded the latest version of IBDAC 5.1 and the same is with a new bug can not write records with ClientDataSet using Properties in TDataSetProvider
ResolveToDataSet = True
Options = [poAllowCommandText, poRetainServerOrder, poUseQuoteChar]
UpdateMode = upWhereKeyOnly
New Bug "Unable to Find Record. Specified In the key."
-
AndreyZ
Re: New Bug "Unable to Find Record. Specified In the key."
The point is that when you use the upWhereKeyOnly update mode, TDataSetProvider tries to read primary key fields from the server. As we found out, the midas.dll library performs some internal work with the received information about primary key fields, which significantly slows down datasets opening. To prevent this, we added the PreventPSKeyFields global variable (defined in the DBAccess unit).
To avoid the problem, you can use one of the two ways:
- specify primary key fields in the TIBCQuery.KeyFields property;
- set the PreventPSKeyFields global variable to False. Note, that it may greatly influence performance.
To avoid the problem, you can use one of the two ways:
- specify primary key fields in the TIBCQuery.KeyFields property;
- set the PreventPSKeyFields global variable to False. Note, that it may greatly influence performance.
Re: New Bug "Unable to Find Record. Specified In the key."
More this error did not occur in previous versions
why?
the variable "PreventPSKeyFields" was always set to false?
and could you give me an example of how to set this Code variable to False?
why?
the variable "PreventPSKeyFields" was always set to false?
and could you give me an example of how to set this Code variable to False?
Re: New Bug "Unable to Find Record. Specified In the key."
Ok I got it and now there's more mistake I did
TForm1.FormCreate procedure (Sender: TObject);
begin
PreventPSKeyFields: = False;
end;
But this is something new in this latest version?
this should not be the UpdateMode property definitions automatically as the Provider was in previous versions?
If I use the UpdateMode as "upWhereAll"
is faster?
TForm1.FormCreate procedure (Sender: TObject);
begin
PreventPSKeyFields: = False;
end;
But this is something new in this latest version?
this should not be the UpdateMode property definitions automatically as the Provider was in previous versions?
If I use the UpdateMode as "upWhereAll"
is faster?
-
AndreyZ
Re: New Bug "Unable to Find Record. Specified In the key."
We added the PreventPSKeyFields global variable in the latest IBDAC build. It is better to set PreventPSKeyFields in the initialization section:The fastest way is to use the upWhereKeyOnly update mode, set the PreventPSKeyFields global variable to True (to avoid bug in the midas library), and specify primary key fields in the TIBCQuery.KeyFields property.
Code: Select all
initialization
PreventPSKeyFields := False;