Subject Re: Should SQL be in same directory as tables?
From Rouke Bakker <moc.liamg@rekkab.ekour>
Date Mon, 11 Sep 2023 19:12:33 -0400
Newsgroups dbase.getting-started

Hello Mervyn,

I posted a reply earlier, but don't see it anymore.

Firstly thanks for your elaborate reply. Much appreciated.

Creating a BDEAlias for the table's folder using BDEADMIN worked for me.

I created an SQL, dragged it onto the form designer, added a grid and it shows headers AND content for me. So all good.

With regard to ADO: I have only two simple forms to do and may work with a proper SQL server and ADO when I get a little more adventurous.

Kind regards,

Rouke


Mervyn Bick Wrote:

> On 2023/08/29 09:06, Rouke Bakker wrote:
> > I'm struggling to convert dbase5.7 to dbase 2019 so am starting from scratch.
> >
> > I created an SQL containing one table. Double clicking the sql in the navigator shows the tablecorrectly.
> >
> > When I create a new form in the form designer and drag that same sql onto the designer, I get the message: "Database Engine Error: Table does not exist: C:\admin\database\expenses\EXPENSES.DBF".
> >
> > I agree with the message; the table sits in C:\admin\database\EXPENSES.DBF, but why does the form look in C:\admin\database\expenses\EXPENSES.DBF (where the SQL resides and from where I clicked new form) while I have specified the table in the sql designer as residing in C:\admin\database\EXPENSES.DBF?
>
> It needs a bit more digging before I stick my neck out and formally
> announce a bug but things are definitely a bit "funny".  :-(
>
> The -- comment at the top of the .sql file, which identifies the
> database or the folder containing the table(s) appears to be for use by
> the SQL Designer and dBASE ignores it.
>
> If your form, the SQL file and your tables are all in the same folder
> there is no problem other than the fact that this is not considered to
> be good programing.  Build the SQL file, drag it onto a form and away
> you go.
>
> If your tables are not in the same folder as the form and the SQL file,
> create a BDEAlias for the table's folder using BDEADMIN.  The SQL
> designer does NOT recognise a UseBDEAlias. :-(   Open the SQL designer
> from the same folder as your form and select the BDEAlias. Build the SQL
> file from the available tables and save the .sql file.
>
> If you drag the new SQL file onto a form dBASE will stream out a
> database object and a query object.  Both are set active This looks OK
> but if you datalink a grid to the query the grid shows the column
> headings but no records.
>
> Instead of dragging the SQL file onto the form drag a database object
> and a query object to the form from the Component Palette.  Set the
> database object's databasename property and make the component active.
> Set the query's database and sql properties and make it active.  This
> should work.
>
> There is one 'caveat'.  A while back I triumphantly announced a new bug.
>   The only problem was that no one else could replicate it and what
> wouldn't work on my computer worked for them.  There was, therefore,
> absolutely no need for my work-around.
>
> If you are going to rewrite applications from scratch now is a good time
> to think about switching from .dbf files and the BDE for your tables to
> a proper SQL server and ADO.  Firebird, which is a fork from the
> original Borland Interbase which used to be bundled with early versions
> of dBASE, is a good choice but, quite frankly, any SQL server is better
> than sticking with the BDE.  There is a learning curve and writing to
> the database needs a different approach.  Once you've mastered SQL
> though it opens up powerful options which are not available in dBASE.
> You may, of course, never need these options but it is better tho have
> them available and not use them than the other way round. :-)
>
>   Mervyn.
>
>
>
>
>
>
>
>
>