Borland Database Engine Issue

Discussion in 'Gaming and Software' started by ghost_us, Oct 23, 2007.

Welcome to the Army Rumour Service, ARRSE

The UK's largest and busiest UNofficial military website.

The heart of the site is the forum area, including:

  1. I know it's a long shot but does anyone out there use the BDE engine in a programming capacity and hit the good old "BDE Error 000F" issue.

    I looked it up and set SHAREDMEMSIZE to max along with all the other init params. Seems I still get it when loading certain records in a SQL qry object.

    Figure someone may have run into this before.

  2. I havent really used the database that much to be honest, I looked into the error and it states 'the buffer manager run out of memory'.

    what is your SQL query calling? how many records do you query? Perhaps you could try normalising your database to help it run more efficiently?

    Sorry, if what I have said, is no use :(
  3. lol, I love this answer I found on the Delphi32 site faq regarding your error

    "In general, when this error occurs you must do less of something to make the error not occur. "
  4. But I did find this:-

    A possible cause of the infamous $000F error can also be the presence of (too) many MEMO (Blob) fields in the result set. I had this one using SQL 6.5 and BDE 5.1. Increasing blobs to cache, memory size for the BDE etc ... did not help. The matter was complicated because the effect of the error showed up in another non related task (which returned no records on a normal simple query-not embedded in a try ..except) whilst the actual origin of the error was in a running task. Altering the start sequence of both tasks made the error disappear for a while. Removing the Blobs from the select list in the query and moving them to a separate query in an 'OnAfterScroll' cured the problem.
  5. That may be a winner!!!

    I realized I had 2 memo data fields tied to the data element. It was around 490 records. Not really a lot.

    It's basically making a sql call to an AS-400 with parameterized date and time, looping through returned records and inserting into an access db.

    Im not sure what you meant by the onafterscroll event. I mean I do, but are you saying that you had a control of some sort causing the issue or was it the dataset itself? I use mainly Borland Builder 6 C++ and 2006 and I use TMS for custom controls. So

    Also, I have built a little sql tool much like MS SQL query analyzer and ran the query through that with no errors, which was really getting me loopy.

    I need to select on the blob fields but I guess I could query them separately as two fields (blob, PKey) and then the rest of the fields.

    Do you think if I just remove all bound controls and read from the query object I should be ok? In your opinion?

    That's the same error description we were laughing at/cursing over here :)
  6. I found the solution on Google, so the "onafterscroll" comment is not mine, but as you say, it sounds like the person had it bound to a control, a listbox or combobox seems most likely
  7. Sorry, just read the rest of your post. As I say, I googled the answer. I have never used Delphi or C++. But as a general comment the error would seem to be within the Borland engine. Just out of intrest the tool you bullt was that built using the Borland C++ package? With regard to removing the bound controls, its tricky to say without seeing the interface. Whenever I have used bound controls it has been to make the interface work slicker and better for the user, so I would be reluctant to remove that functionality because of a Borland error. If you can work around it somehow as you say by querying the memo fileds seperately and can then combine your results into the control, so the user doesnt even notice you have changed the code, to me that would be a better solution

  8. In a nutshell:

    It's an app that monitors a IBM as400 file/table that stores integration errors. The errors are wiped by the system after 3 days and provide no notification

    I'm writing something that scans that file via sql and stores the results permanently in another database. It will also pro actively email or text notify a distro list when errors are present.

    The way the connection works is that a general connection is created and bound to a BDE database component via ODBC. Then either query or table objects are bound to the database object, then a data source is bound to the table or query, then lastly your componant(s) are bound to the data source.

    You can poll the data components directly or through the components via datasource. The datasource more cotrols the traffic and connection rules ie: Read only, Select, delete, insert, update, et al.

    Anyway, the error was occurring when I opened a query component and activated it. I think that because there were 2 memo fields bound in via the method above it was causing the error. I plan on just polling the query object directly.

    We'll see how it works out.

    Thanks for your help.