Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

BDE Windows XP

128 views
Skip to first unread message

renesan32

unread,
Apr 4, 2005, 6:50:14 AM4/4/05
to
I have a problem with my App (Delphi 5, BDE 5.1, MySQL ODBC any driver)
using XP. Using W2K and XP as Administrator everything works fine. As soon
as I use my app as a user without Administrator rights (Hauptbenutzer) I got
error -messages like: "Invalid SQL statement ......"
This only happens when the SQL statement goes beyond simple statements like
"select * from table1". I heard of problems using BDE with SP2 under XP
(changing SHARED MEMORY LOCATION).

Does anybody know of a solution for that?

Thank you!


Lysander

unread,
Apr 4, 2005, 8:04:46 AM4/4/05
to
In article <4251...@newsgroups.borland.com>, u...@linial.de says...

> This only happens when the SQL statement goes beyond simple statements
like
> "select * from table1".


try to check, where your local installation of BDE is situated, and
where it is writing "Temp"-files.
If you do a client-side join of tables, BDE will create a local
tempfile, as far as I know.

It could be that you installed BDE in a folder which is by default a
"system-folder" under W2K and XP, and that you have to grant access to
userlevels lower than admins.

--
ciao,
André
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
European dBase-conference dBKonEurope on June 3rd and 4th
English spoken conference around different database-topics
::
Info here: www.dbkon.org

renesan32

unread,
Apr 4, 2005, 11:51:48 AM4/4/05
to
Thanks for the information.

- but where can I see where Temp-Files are written by the BDE?

- How can I see if the join is made client-side? I thought that the SQL is
passed directly to the server because the BDE directive SQLQRYMODE is NULL
in my case (SQL is automatically passed to Server).

- The BDE is installed to C:\Programs\Common Files\Borland\BDE as far as I
remember. I will check it if its restricted to Admins

"Lysander" <nob...@nowhere.com> schrieb im Newsbeitrag
news:MPG.1cbb4bcb1...@newsgroups.borland.com...

Rick Carter

unread,
Apr 4, 2005, 3:29:02 PM4/4/05
to

"renesan32" <u...@linial.de> wrote:
>- but where can I see where Temp-Files are written by the BDE?

Rather than leaving that up to chance, specify that in your
program by setting a value for Session.PrivateDir.
Example: Session.PrivateDir := 'C:\TEMP';

But make sure it's a directory the end-user will be able
to write to.

Rick Carter
cart...@despammed.com
Chair, Delphi/Paradox SIG, Cincinnati PC Users Group

C P

unread,
Apr 4, 2005, 3:02:15 PM4/4/05
to
There's a Win32 API function (something like GetTempFolder I think) that
will get you the root temp folder assigned to the current user. It's best
to use this to set the temp folder because then you can make sure your temp
files are always going into the actual proper place, and will get handled by
clean-up utilities that clean up standard temp folders. Generally a user
has full privileges to the actual temp folder, so using the API function to
get it means you don't have to worry so much about fiddling with
permissions.


Bill Todd

unread,
Apr 4, 2005, 8:59:53 PM4/4/05
to
The BDE creates temporary files in the user's private directory. Unless
you specify a different directory by setting Session.PrivateDir the
private directory will be the application's startup directory.

If you are using a database server SQL is passed to the server for
execution unless you are doing a heterogeneous join (for example, joining
an Oracle table to a SQL Server table).

To find out where your programs will think the BDE is installed look at
the value of DllPath under HKLM\Software\Borland\Database Engine.

--
Bill Todd (TeamB)
TeamB cannot answer questions received via email

Lysander

unread,
Apr 5, 2005, 2:19:03 AM4/5/05
to
> - How can I see if the join is made client-side? I thought that the
SQL is
> passed directly to the server because the BDE directive SQLQRYMODE is NULL
> in my case (SQL is automatically passed to Server).

Right now I am just about to start converting my application to Delphi,
so I might be not of too much help to you.

About client- or server-side joins: in my former language it depends on
_which type_ of objects you are using to access the server. Just try
using an ADO-component-set with your MySQL instead of a BDE-component-
set and see if this makes a change.

Even if you fix such a problem by granting additional rights on a
tempfile-folder, processing will be more efficient if tempfiles are not
created at all, but kept in the server's RAM :)

BDE instead of NULL also allows to explicitely set SQLQueryMode to
"Server" by the way; don't know if this will help, though.


--
ciao,
André
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
European dBase-conference dBKonEurope on June 3rd and 4th

English spoken conference around different dBase-topics
::
Info here: www.dbkon.org

renesan32

unread,
Apr 7, 2005, 4:16:47 AM4/7/05
to
Now it works, thank you for your help!

The BDE tried to write the PDOXUSRS.NET File to the directory "c:\" which is
restricted for "Hauptbenutzer"-Users under XP. The directory can be changed
using the TSession-Object setting NetFileDir e.g. to
extracfilePath(application.exename).

"Lysander" <nob...@nowhere.com> schrieb im Newsbeitrag
news:MPG.1cbb4bcb1...@newsgroups.borland.com...

Lysander

unread,
Apr 7, 2005, 8:04:45 AM4/7/05
to
In article <d32qb7$fr5$04$1...@news.t-online.com>, u...@linial.de says...

> Now it works, thank you for your help!

Fine!

0 new messages