Fast reports issues

I’m running a fastreport on a bunch of paradox (yes, I know get over it) databases.
One is in a subdirectory.

It has been working fine for a long time but a client has just updated their server and it now appears
that the join is broken.
I get an invalid Filename error message, I think about the time it tries to access the BDEQuery.
I’m doing the join to a BDEQuery object by adding the commands to the SQL to link a number of tables together.

Has anyone any suggestions, it feels like the guys setting up the server have left something out but I can’t prove that.
While they are using UNC pathname they have mapped the location to a drive letter but neither seem to help.
They have mumbled something about SMB security but from what I’ve read it only applies to a MSSQL server.
PC windows 10 server 2019

Thanks Russell

I have clients running a BDE app on a server drive on Win 10 clients.
Windows 10 Defender hammers the LCK files when they are opened across a network share causing random BDE errors “Not exact read/write”, Index out of date etc etc
It improves by putting exclusions into Defender for the data folder and file type.
(The app runs fine on the local machine and on the server itself)
I cannot recall filename errors mentioned specifically but it may be related

Cheers
Tony

I have been wading though this a bit more and I’m inclined to agree there is something other than fast reports that is the issue.

I’m doing a fairly simple SQL statement with a TQuery called ResellerQuery and it gives me the “invalid file” error even with the code simplified to

DataModule1.ResellerQuery.SQL.clear;
DataModule1.ResellerQuery.SQL.add('Select J.* FROM');
DataModule1.ResellerQuery.SQL.add('"ResellerQuantities.db" ' +' J');
DataModule1.ResellerQuery.SQL.add('ORDER BY J.CostCentre , J.ItemID;');
DataModule1.ResellerQuery.ExecSQL;

I’ve made sure the ResellerQuantities.db is in the same folder as the exe.

Most frustrating that it works fine on a windows 10 machine locally and had been working for this client until they upgraded the server.
Any thoughts would be much appreciated.

Thanks
Russell

Do all your queries fail or just the one referencing the table/s in the subfolder?
If so is it a permissions issue on the server?

I only use the TQuery when I go to produce reports otherwise I can read/write/create the tables on the server with TTable happily. If there is some other method of joining these tables for the report I’ll give it a go. I usually do the join inside the fastreport with the SQL statement but even if I just use a TQuery inside the application to display to a grid I get the error message.

Hi Russell,

You say “they are using UNC pathname”. Is that new, or was a UNC being used before? FWIW, UNC paths and most database files do not mix - the ability to lock sections of the file is not fully implemented by Windows and causes endless problems in other apps like SVN when the repository is on a UNC path.

Also, the join may be creating temporary files. Do you know where the Paradox driver will create them? Have you checked the BDE config - I can’t recall if it has a setting for temp file folder. It may just default to the .exe location!

Hope that helps,

Regards, Tony

Hi Russell

Is the database on a removable device.

I have found that with Windows10 I sometime get file/folder access errors when attempting to look on a removable device

What type of database are you using?

Are you using the BDE?

Regards
Graeme

Hi Tony,
Thanks, I started there and had them map the location to a drive letter. The application has to run as administrator so I’ve checked that the mapping is valid for that user.
I’ve played with the BDEadmin program to set the NET Directory to the same folder as the database tables but I can’t see a setting for temporary files. I’d expect a join command would have to produce this somewhere. If this was the local machine then I’d hope that because it worked previously before changing the server then it would continue to work in whatever location it was in. I’ll see if the monitoring software can identify an attempted file open on the server.
Thanks Russell

Hi Graeme,
No the database tables are all on a network server, and the problem has only occurred since they upgraded to windows server 2019, previously it had been working for 10+ years and it still works on a local installation on windows 10.
It is based on the BDE and I’m going to play with a few more of the BDEadmin settings. If you have a copy of the settings for BDEadmin in some dark corner then let me know it would be much appreciated.
Thanks Russell.

Hi Russell

I have a feeling I didn’t explain what I had seen correctly.

What I meant to say was that I got the problem if the database was located on o drive that was not physically attached to the machine. For example C: or if you have two non-mapped drives the D: drive. Te drive I was using was mapped to the X: drive, which was mapped to another location.

This seems to agree with your statement that ‘…previously it had been working for 10+ years and it still works on a local installation on windows 10.’.

I hope this is not a problem with Windows 10 as it could mean a major change for you. My solution was to simply move the database.

I haven’t used the BDE for many many years now (since the mid 1990’s) but I’ll see what I can find.

Just thought of something: does the BDE allow you to specify the database on another machine (rather than using a ‘local’ database via a mapping)?

Regards
Graeme

Hello Russel,

attaching your report to a BDE query directly may not be the best solution. The navigation of your report may cause more network traffic than necessary. How about loading the data into a client dataset or a TFDMemTable and pass this in-memory dataset on to the FastReport. Then the report can jump around in your in-memory dataset without needing any more access to the remote Paradox files.

Salut,
Mathias