Clientdataset 'Insufficient memory for this Operation'

Asked

Viewed 3,135 times

2

I’m trying to give a active in a ClientDataSet and is returning the following error:

edbclient Insufficient memory for this Operation

Does anyone know how to solve?

  • Try looking at this link for help: http://stackoverflow.com/questions/11424866/insufficient-memory-when-running-query-in-delphi-7-using-bde-paradox-7

  • thank you!!!.....

  • If any of the solutions I gave you solved your problem, you can add it as an answer so that it also helps other people who face the same problem.

  • did not resolve :(

  • which reporting component you are using?

  • I’m using the report Builder

  • I can’t execute the command cds.LogChanges := false before giving a active true, and the problem is giving in time to activate the cds :(...

  • Seems to be a Midas.dll problem, see at that link

  • okay, I’ll see, Valew man :)

  • didn’t solve no :(

  • Are you using BDE? You may need to change the BLOBS TO CACHE and BATCH COUNT fields in the BDE properties.

  • Check the size of the process you want to do inside Clientdataset, if it will cost a lot of memory when you click on active, if it really happens it should be because of a very large sql return.

Show 7 more comments

2 answers

1

This usually happens when you have a lot of data to return. As it is not explicit what you intend to do, I suggest trying to use the FetchAll.

SQLConnection1.Params.Values['FetchAll'] := 'False';

Remembering that if the problem is really in the number of records returned from the bank, it would perhaps fit a reanalysis of the business rule.

1

The problem is related to BDE and how it uses memory to perform its operations. Every Delphi programmer has been there and has usually cursed the BDE for this behavior. I strongly recommend that you reconsider the use of BDE and start using a newer technology such as Firedac or Unidac.

To solve, open the BDE Admin, click on the tab Configurations. Click on the sign of + existing alongside System and then click on INIT. On the right side of the screen will appear a series of settings, one of them is called SHAREDMEMSIZE which must have a value of 2048. Change this value to 4096, give a ENTER and apply the change by pressing CTRL+A. Restart the application using the BDE and check if the error persists.

References to other errors as well as their solutions are found in the following link

http://aflsistemas.com.br/blog/2009/08/17/solucao-para-os-erros-do-bde-relacionados-a-memoria/

Browser other questions tagged

You are not signed in. Login or sign up in order to post.