473,395 Members | 1,484 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

Dbase3 Conversion

Hello,

I am the head of a small non profit (501c3) feline registry that
several years ago had a dbase program created to keep track of members,
cats, registration numbers, etc. The son of the original founder wrote
the program, and ive been trying to convert it to Access. I can get to
all the data, the problem lies in that I cannot access the indexes to
know how all the data fits together as the person who wrote the program
no longer has the original files. the program, in it's entirety,
including all the data, is less than 2 Mb. Would anyone be willing to
point me in the rifght direction to anyone who would be willing to do
the conversion for a nomial fee, or failing that, tell me what tool i
would require in order to do it myself. I have tried a couple of
"freeware" conversion utilities that did not work. there is an .exe
file that would probably need to be decompiled in order to find what im
looking for.
Any help would be greatly appreciated!
Thank You
Ken Taylor
President
AACE Inc.

May 23 '06 #1
7 1962
If you don't mind sending me the dbase data I'll be happy to analyze it for
you for free.

I'll be happy to post what I find out about the data back here into this
group so that someone else could take it on if necessary.

May 23 '06 #2
"K.taylor" <ke*@sandkats.com> wrote in
news:11**********************@j33g2000cwa.googlegr oups.com:
Hello,

I am the head of a small non profit (501c3) feline registry
that several years ago had a dbase program created to keep
track of members, cats, registration numbers, etc. The son of
the original founder wrote the program, and ive been trying to
convert it to Access. I can get to all the data, the problem
lies in that I cannot access the indexes to know how all the
data fits together as the person who wrote the program no
longer has the original files. the program, in it's entirety,
including all the data, is less than 2 Mb. Would anyone be
willing to point me in the rifght direction to anyone who
would be willing to do the conversion for a nomial fee, or
failing that, tell me what tool i would require in order to do
it myself. I have tried a couple of "freeware" conversion
utilities that did not work. there is an .exe file that would
probably need to be decompiled in order to find what im
looking for. Any help would be greatly appreciated!
Thank You
Ken Taylor
President
AACE Inc.

In dBase III, dBase IV, FoxBase+, FoxPro I, and Clipper, indexes
had to be defined manually to put the data recorrds in anything
except the order they were created in.

Access is much smarter than that. Define a relationship, click
on the sort by for a field, create an order by clause in a
query, and Access will automagically create any needed index.
--
Bob Quintal

PA is y I've altered my email address.
May 23 '06 #3
Access is pretty slick, but it doesn't exactly "automagically create any
need index."

If you mean that it can sort easily through the interface, you're absolutely
correct.

To create an index, however, you must tell it to do so. This happens in the
table design view. If you mark a field as Primary Key, it makes an index to
implement that. If you mark a field as indexed (whether with or without
duplication allowed), it creates an index for that.

In code you can access a TableDef object and append a new Index object to
create more indexes. Those indexes show up in the popup Indexes windows,
where you can manually create more indexes. You must use either code or
this window to create indexes based on more than one field.

None of this exactly solves the poster's problem of finding correspondences
between fields in different tables. One would hope that the primary key in
one table would be carried into a field of the same name as a foreign key in
any related table, but even that must sometimes be violated. For instance,
if you have a Parts table, using PartID as the primary key, then in your
assembly table, where you pair one Master part with 1 to n Component parts,
you cannot use the field PartID twice, clearly. Typically, you prepend or
append some distinguishing text, such as Assembly_PartID and
Component_PartID, or PartID_Assembly, PartID_Component.

So, some analysis is needed in coming forward from dbase-era data to Access.
Sometimes not much. It has always been possible to design tables well and
to design related tables properly. If the original designer did that, the
analysis required in the conversion is minimal.


May 23 '06 #4
"Rick Wannall" <cw******@yahoo.com> wrote in
news:18******************@newssvr12.news.prodigy.c om:
Access is pretty slick, but it doesn't exactly "automagically
create any need index."

If you mean that it can sort easily through the interface,
you're absolutely correct.
and it does so by building a hidden index. If you set a relation
in a query, Access will create hidden indexes on the two fields
if none exist.
To create an index, however, you must tell it to do so. This
happens in the table design view. If you mark a field as
Primary Key, it makes an index to implement that. If you mark
a field as indexed (whether with or without duplication
allowed), it creates an index for that.
Yes, you can create additional indices to improve performance.

In code you can access a TableDef object and append a new
Index object to create more indexes. Those indexes show up in
the popup Indexes windows, where you can manually create more
indexes. You must use either code or this window to create
indexes based on more than one field.

None of this exactly solves the poster's problem of finding
correspondences between fields in different tables.
Actually the SET RELATION TO xxxxx INTO yyyyyy,
is the only way to set up a relation in dBASE III. The statement
is a pretty good clue as to the relationship, as it identifies
the field (or fields) used on one side of the (left) join.It's
then fairly simple to open the joined table and look for values
like those in the identified fields. ,

One would hope that the primary key in one table would be carried into a
field of the same name as a foreign key in any related table,
but even that must sometimes be violated. For instance, if
you have a Parts table, using PartID as the primary key, then
in your assembly table, where you pair one Master part with 1
to n Component parts, you cannot use the field PartID twice,
clearly. Typically, you prepend or append some distinguishing
text, such as Assembly_PartID and Component_PartID, or
PartID_Assembly, PartID_Component.

Calling them Mabel and Bob would be dumb.
So, some analysis is needed in coming forward from dbase-era
data to Access. Sometimes not much. It has always been
possible to design tables well and to design related tables
properly. If the original designer did that, the analysis
required in the conversion is minimal.

Granted. I wrote an app in dbase III, around 1986. Various
employees upgraded to dBase IV, then Access 2, then '97. in
2001, the app was split and tables moved into SQL server. I was
consulted to investigate a modernization of the app, to tie it
into the MRP system. The structure of the system hadn't changed,
even the _dBaseLock fields were there. I deleted those and
added a field named website and a second called email to the
vendors table. No other changes were necessary.

--
Bob Quintal

PA is y I've altered my email address.
May 24 '06 #5
For BQ:
"Bob Quintal" <rq******@sympatico.ca> wrote in message
news:Xn**********************@207.35.177.135...
"Rick Wannall" <cw******@yahoo.com> wrote in
news:18******************@newssvr12.news.prodigy.c om:
Access is pretty slick, but it doesn't exactly "automagically
create any need index."

If you mean that it can sort easily through the interface,
you're absolutely correct.
and it does so by building a hidden index. If you set a relation
in a query, Access will create hidden indexes on the two fields
if none exist.


I'm trying to understand the purpose of this reply. You're referring to how
Access does things behind the scenes. The hidden indexes you refer to are
ephemeral. When you finish your query, the indexes are discarded. The user
cannot see or manipulate them through the index interface. Neither can the
developer through code. You're referring to something that a user will not
see or ever make any use of, except to be the unknowing beneficiary of it.
Why?
To create an index, however, you must tell it to do so. This
happens in the table design view. If you mark a field as
Primary Key, it makes an index to implement that. If you mark
a field as indexed (whether with or without duplication
allowed), it creates an index for that.
Yes, you can create additional indices to improve performance.

In code you can access a TableDef object and append a new
Index object to create more indexes. Those indexes show up in
the popup Indexes windows, where you can manually create more
indexes. You must use either code or this window to create
indexes based on more than one field.



None of this exactly solves the poster's problem of finding
correspondences between fields in different tables.


Actually the SET RELATION TO xxxxx INTO yyyyyy,
is the only way to set up a relation in dBASE III. The statement
is a pretty good clue as to the relationship, as it identifies
the field (or fields) used on one side of the (left) join.It's
then fairly simple to open the joined table and look for values
like those in the identified fields. ,


What you say sounds right, though I haven't seen dbase in so long that I
would have had to be reminded of this somehow. Absent such SET commands, or
other joining techniques used in the application, how would you determine
relationships other than by inspection?
One would
hope that the primary key in one table would be carried into a
field of the same name as a foreign key in any related table,
but even that must sometimes be violated. For instance, if
you have a Parts table, using PartID as the primary key, then
in your assembly table, where you pair one Master part with 1
to n Component parts, you cannot use the field PartID twice,
clearly. Typically, you prepend or append some distinguishing
text, such as Assembly_PartID and Component_PartID, or
PartID_Assembly, PartID_Component.

Calling them Mabel and Bob would be dumb.


And yet I have seen developers call a foreignkey field something that meant
something to them but gave no clue to the corresponding field in the
referenced table. They might as well have called the foreign key fields
Mabel and Bob. There are a lot of people who manage to pass themselves off
as developers, and I've cleaned up behind several of them. People do dumb
things, and decoding them takes analysis.
So, some analysis is needed in coming forward from dbase-era
data to Access. Sometimes not much. It has always been
possible to design tables well and to design related tables
properly. If the original designer did that, the analysis
required in the conversion is minimal.

Granted. I wrote an app in dbase III, around 1986. Various
employees upgraded to dBase IV, then Access 2, then '97. in
2001, the app was split and tables moved into SQL server. I was
consulted to investigate a modernization of the app, to tie it
into the MRP system. The structure of the system hadn't changed,
even the _dBaseLock fields were there. I deleted those and
added a field named website and a second called email to the
vendors table. No other changes were necessary.

--
Bob Quintal

PA is y I've altered my email address.


May 25 '06 #6
"Rick Wannall" <cw******@yahoo.com> wrote in
news:bP*******************@newssvr11.news.prodigy. com:
For BQ:

and it does so by building a hidden index. If you set a
relation in a query, Access will create hidden indexes on the
two fields if none exist.
I'm trying to understand the purpose of this reply. You're
referring to how Access does things behind the scenes. The
hidden indexes you refer to are ephemeral. When you finish
your query, the indexes are discarded. The user cannot see or
manipulate them through the index interface. Neither can the
developer through code. You're referring to something that a
user will not see or ever make any use of, except to be the
unknowing beneficiary of it. Why?


They aren't ephemeral, they are permanent.Access uses them.

Actually the SET RELATION TO xxxxx INTO yyyyyy,
is the only way to set up a relation in dBASE III. The
statement is a pretty good clue as to the relationship, as it
identifies the field (or fields) used on one side of the
(left) join.It's then fairly simple to open the joined table
and look for values like those in the identified fields. ,


What you say sounds right, though I haven't seen dbase in so
long that I would have had to be reminded of this somehow.
Absent such SET commands, or other joining techniques used in
the application, how would you determine relationships other
than by inspection?


Without the SET RELATION commands you have nothing more than a
bunch of freestanding tables. They are the only way in dBase3.
As long as the .prg files are there that's all that's needed to
determine relationships. .prg files can be read in notepad.

And yet I have seen developers call a foreignkey field
something that meant something to them but gave no clue to the
corresponding field in the referenced table. They might as
well have called the foreign key fields Mabel and Bob. There
are a lot of people who manage to pass themselves off as
developers, and I've cleaned up behind several of them.
People do dumb things, and decoding them takes analysis.

I know what you mean. I have had to clean up several self-titled
programmer-analysts.
--
Bob Quintal

PA is y I've altered my email address.
May 25 '06 #7
You've got my interest now. I haven't been able to find any info about
Access building indexes on the fly and having them persist. I looked at KB
Article 209126 (Information about query performance in an Access database)
and simliar stuff, but nothing one way or the other.

I'm still skeptical, because of statement like "Index sort fields/Index the
fields that you use for sorting." under "Tips to improve query performance"
in the article cited above. I would expect a mention somewhere that after
the first run of the query it doesn't matter, since Access builds and keeps
an index anyway.

Well, that only means I haven't seen what I'm looking for.

Can you point me to a detailed source that lays out the process you're
referring to? I'm very eager to know more.

Thanks ahead for any references.

Rick W
May 25 '06 #8

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

1
by: Stub | last post by:
Docs says that "The compiler does not use an explicit constructor to implement an implied conversion of types. It's purpose is reserved explicitly for construction." I put up code of three cases...
7
by: Michael Lehn | last post by:
Hi, I have a question regarding the conversion of objects. When is the conversion done by the constructor and when by the operator. My feeling tells me that the constructor is preferred. But...
16
by: TTroy | last post by:
Hello, I'm relatively new to C and have gone through more than 4 books on it. None mentioned anything about integral promotion, arithmetic conversion, value preserving and unsigned preserving. ...
31
by: Bjørn Augestad | last post by:
Below is a program which converts a double to an integer in two different ways, giving me two different values for the int. The basic expression is 1.0 / (1.0 * 365.0) which should be 365, but one...
11
by: Steve Gough | last post by:
Could anyone please help me to understand what is happening here? The commented line produces an error, which is what I expected given that there is no conversion defined from type double to type...
2
by: Alex Sedow | last post by:
Why explicit conversion from SomeType* to IntPtr is not ambiguous (according to standart)? Example: // System.IntPtr class IntPtr { public static explicit System.IntPtr (int); public...
3
by: Steve Richter | last post by:
here is a warning I am getting in a C++ .NET compile: c:\SrNet\jury\JuryTest.cpp(55) : warning C4927: illegal conversion; more than one user-defined conversion has been implicitly applied while...
0
by: Lou Evart | last post by:
DOCUMENT CONVERSION SERVICES Softline International (SII) operates one of the industry's largest document and data conversion service bureaus. In the past year, SII converted over a million...
0
by: Sekagya | last post by:
Hello; Am new to this forum. I have been using access and have written vaious applications in there. I wana go VB and use DBASE3 as the back end. My problem is to use code as the application...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.