Global rewriting of provider
Changes in IBProvider
By the current moment, due to total renovation, the handle of resultant sets has varied. Now Provider can independent provide random access to the selected set, and begins to use the temporary file, if will exceed a limit on permissible memory size (it does not depend on a mode of access). By default the object is created with sequential one-direction access.
cmd.CommandText="select * from people" cmd.Properties("IRowsetLocate")=true ' we permit random access set rs=cmd.Execute
After that it is possible to use methods of Recordset: MoveLast, MoveFirst etc.
Other large change concerns commands. Support of named parameters is a thing rather trivial, if not consider that ADO flatly refuses to transmit these names in Provider. Therefore, name indicated in Command.CreateParameter — only for convenience of use ADO, no more. It is good, that InterBase has possibility independently to determine types of parameters of inquiry, which Provider, together with names, and returns ADO to components.
cmd.CommandText="select * from people where id<id" cmd("id")=100 set rs=cmd.Execute
For a control and detection of errors in the text of inquiry at commands the «prepare stmt» property isdefined, in which the transformed text of inquiry with ‘?’ instead of names is stored. One trouble was detected while testing: in ADO it is impossible to use names for BLOB parameters. The technical aspect of this error is known — ADO tries to transmit the information on parameters back into Provider, but without the indication of names. It does not suit for Provider. A solution is in the use of non-named parameters (‘?’). It is not permitted to mix in the text of inquiry named and non-named parameters.
Except the «useful» code fresh lot of «paranoid» errors traps appeared in Provider. But on our observations it has a little effect on speed. But it is the guaranty of quality and more simple way of detection of guilty. Nevertheless now you can download «pure» code also. All ours tests have found nothing and that's why we have risked by our health to suggest it to you.