FoxPro Vs. PostgreSQL
Hello all ,
I am a OpenSource S/W developer and my clients are from remote part of
Himachal Pradesh India.
I am providing my clients,
software
Build on PostgreSQL 7.3.x as backed
and yes , they (clients) ought to save a lot while using my software as
it runs on Linux
But theirs one Prick Our Competitor he is providing solution in what else
FoxPro + Win98
and this competitor justifies his software as Superior because some of
the Indian local banks use this
clumsy set of tool to manage their bureaucratic banking work system.
What I want is some support from this good community to give me some
1. Tips
2. Links
3. Advise
for FoxPro and its limits (As could be told to a layman)
as how to crush my competitor for M$ tools,
Its time to prove The M$ Guys that they have $$$$$ Power and we the GNU
people have a
social perspective of doing work.
Would be greatefull for all your Comments / Bashing and yes Support
Please..........................
To Add More :
My Clients are Agriculture Banks and cannot afford the M$ tools. and yes
all the Win98 installation on their computers are
pirated.
Regards,
V Kashyap
Hi,
Sai Hertz And Control Systems wrote:
Dear Ivan ,
Hello all ,
I am a OpenSource S/W developer and my clients are from remote part
of
Himachal Pradesh India.
I am providing my clients,
software
Build on PostgreSQL 7.3.x as backed
and yes , they (clients) ought to save a lot while using my
software as
it runs on LinuxNot in all cases :). Probably you will pay much more for linux
support.I Smell burned Fingers :-D
Please share your experience as this will help me a bit .
Ok,pg advantages (depends from the application also):
- triggers (you can write it also in "C". It will be fast and is not
possible for FoxPro).
- user defined data types
- support (the mailing list is supper. You will have the best possible
support and bug fix ).
- support very good the SQL spec.
- fast (if you can write good SQL).
- you can use it for very big db-s.
- cost. I will compare the cost with oracle, not with FoxPro.And Pg is
free.
FoxPro advantages (and pg disadvantages):
- you can run it on win 98, win 2K and so on. So you can use it also for
small apps. It will change when native port for pg arrives.
- MS marketing.
- integrated visual tools and dev. tools. It is good for small apps.
only.
To Add More :
My Clients are Agriculture Banks and cannot afford the M$ tools.
and yes
all the Win98 installation on their computers are
pirated.I think you can do nothink for it and it is not your problem.
Problem may be not mine but I can at least make someone concern to it.
Why I am saying so is , because piracy fighters have pushed many to
Open Source :-*Regards,
V Kashyap
Regards,ivan.
Hello Kashyap,
the limitations of VFP8 (the newest FoxPro version are the following
(according to the VFP8 manual):
Some capacities may be limited by available memory.
Category Feature Capacity
Table and Index Files
Maximum # of records per table file 1 billion
Maximum size of a table file 2 gigabytes
Maximum size of an FPT file 2 gigabytes
Maximum # of characters per record 65,500
Maximum # of fields per record1 255
Maximum # of tables open at one time2 65,535
Maximum # of characters per table field 254
Maximum # of bytes per index key in a non-compact index3 100
Maximum # of bytes per index key in a compact index3 240
Maximum # of open index files per table2 Unlimited
Maximum # of open indexes in all work areas2 Unlimited
Maximum # of relations Unlimited
Maximum length of relational expressions Unlimited
Field Characteristics
Maximum size of character fields 254
Maximum size of numeric and float fields 20
Maximum number of characters in field names in a free table 10
Maximum number of characters in field names for a table contained in a
database 128
Minimum value of an integer -2,147,483,647
Maximum value of an integer 2,147,483,647
Digits of precision in numeric computations. Visual FoxPro can handle
numbers up to 9007199254740992 (2^53) in exact computations. 16
Miscellaenous:
64 bits = 8 bytes
Largest number = 10 ^ 308 = 2 ^ 1023
-> 10 bits per exponent + 1 for exponent sign plus 1 for number sign => 12
bits
Leaving 52 bits for the mantissa + 1 for implied normalized bit -> 53 bits
LOG10(2^53) = 15.95 decimal digits accuracy
Variables and Arrays
Default # of variables 1,024
Maximum # of variables 65,000
Maximum # of arrays 65,000
Maximum # of elements per array 65,000
Program and Procedure Files
Maximum # of lines in source program files Unlimited
Maximum size of compiled program
modules4 64K
Maximum # of procedures per file Unlimited
Maximum # of nested DO calls 128
Maximum # of READ nesting levels 5
Maximum # of nested structured programming commands 384
Maximum # of passed parameters 26
Maximum # of transactions 5
Report Designer Capacities
Maximum # of objects in a report definition2 Unlimited
Maximum length of a report definition 20 inches
Maximum # of grouping levels 128
Maximum length of character report variables 255
Other Capacities
Maximum # of open windows (all types)2 Unlimited
Maximum # of open Browse windows 255
Maximum # of characters per character string or memory variable 16,777,184
Maximum # of characters per command line 8,192
Maximum # of characters per label control on a report 252
Maximum # of characters per macro substituted line 8,192
Maximum # of open files System limit
Maximum keystrokes in keyboard macro 1,024
Maximum fields that can be selected by a SQL SELECT statement 255
Maximum length of a string literal 255
Maximum # of pages in a report at runtime 32767
1 If one or more fields allow null values, the limit is reduced by one to
254 fields.
2 Limited by memory and available file handles. .cdx files use only one file
handle.
3 If the collating sequence is set to MACHINE, each character uses one byte.
If the collating sequence is not set to MACHINE, each character uses two
bytes. If the indexed field supports null values, one additional byte is
used in the index key. Note that non-machine indexes are always compact.
4 A program module is one procedure. A program or application can contain an
unlimited number of program modules.
Regards
Florian Reiser
-----Original Message-----
From: pgsql-general-owner@postgresql.org
[mailto:pgsql-general-owner@postgresql.org] On Behalf Of Sai Hertz And
Control Systems
Sent: Sunday, December 14, 2003 4:19 PM
To: pgsql-general@postgresql.org
Cc: Postgres Admin List
Subject: [GENERAL] FoxPro Vs. PostgreSQL
Hello all ,
I am a OpenSource S/W developer and my clients are from remote part of
Himachal Pradesh India.
I am providing my clients,
software
Build on PostgreSQL 7.3.x as backed
and yes , they (clients) ought to save a lot while using my software as
it runs on Linux
But theirs one Prick Our Competitor he is providing solution in what else
FoxPro + Win98
and this competitor justifies his software as Superior because some of
the Indian local banks use this
clumsy set of tool to manage their bureaucratic banking work system.
What I want is some support from this good community to give me some
1. Tips
2. Links
3. Advise
for FoxPro and its limits (As could be told to a layman)
as how to crush my competitor for M$ tools,
Its time to prove The M$ Guys that they have $$$$$ Power and we the GNU
people have a
social perspective of doing work.
Would be greatefull for all your Comments / Bashing and yes Support
Please..........................
To Add More :
My Clients are Agriculture Banks and cannot afford the M$ tools. and yes
all the Win98 installation on their computers are
pirated.
Regards,
V Kashyap
---------------------------(end of broadcast)---------------------------
TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
Dear Florian Reiser ,
This was great help loads of thanks
Now its upto me to convert it into laymans language.
Regards,
V kashyap.
Show quoted text
Hello Kashyap,
the limitations of VFP8 (the newest FoxPro version are the following
(according to the VFP8 manual):Some capacities may be limited by available memory.
Category Feature Capacity
Table and Index Files
Maximum # of records per table file 1 billion
Maximum size of a table file 2 gigabytes
Maximum size of an FPT file 2 gigabytes
Maximum # of characters per record 65,500
Maximum # of fields per record1 255
Maximum # of tables open at one time2 65,535
Maximum # of characters per table field 254
Maximum # of bytes per index key in a non-compact index3 100
Maximum # of bytes per index key in a compact index3 240
Maximum # of open index files per table2 Unlimited
Maximum # of open indexes in all work areas2 Unlimited
Maximum # of relations Unlimited
Maximum length of relational expressions UnlimitedField Characteristics
Maximum size of character fields 254
Maximum size of numeric and float fields 20
Maximum number of characters in field names in a free table 10
Maximum number of characters in field names for a table contained in a
database 128
Minimum value of an integer -2,147,483,647
Maximum value of an integer 2,147,483,647
Digits of precision in numeric computations. Visual FoxPro can handle
numbers up to 9007199254740992 (2^53) in exact computations. 16
Miscellaenous:
64 bits = 8 bytes
Largest number = 10 ^ 308 = 2 ^ 1023
-> 10 bits per exponent + 1 for exponent sign plus 1 for number sign => 12
bits
Leaving 52 bits for the mantissa + 1 for implied normalized bit -> 53 bits
LOG10(2^53) = 15.95 decimal digits accuracyVariables and Arrays
Default # of variables 1,024
Maximum # of variables 65,000
Maximum # of arrays 65,000
Maximum # of elements per array 65,000Program and Procedure Files
Maximum # of lines in source program files Unlimited
Maximum size of compiled program
modules4 64K
Maximum # of procedures per file Unlimited
Maximum # of nested DO calls 128
Maximum # of READ nesting levels 5
Maximum # of nested structured programming commands 384
Maximum # of passed parameters 26
Maximum # of transactions 5Report Designer Capacities
Maximum # of objects in a report definition2 Unlimited
Maximum length of a report definition 20 inches
Maximum # of grouping levels 128
Maximum length of character report variables 255Other Capacities
Maximum # of open windows (all types)2 Unlimited
Maximum # of open Browse windows 255
Maximum # of characters per character string or memory variable 16,777,184Maximum # of characters per command line 8,192
Maximum # of characters per label control on a report 252
Maximum # of characters per macro substituted line 8,192
Maximum # of open files System limit
Maximum keystrokes in keyboard macro 1,024
Maximum fields that can be selected by a SQL SELECT statement 255
Maximum length of a string literal 255
Maximum # of pages in a report at runtime 327671 If one or more fields allow null values, the limit is reduced by one to
254 fields.
2 Limited by memory and available file handles. .cdx files use only one file
handle.
3 If the collating sequence is set to MACHINE, each character uses one byte.
If the collating sequence is not set to MACHINE, each character uses two
bytes. If the indexed field supports null values, one additional byte is
used in the index key. Note that non-machine indexes are always compact.
4 A program module is one procedure. A program or application can contain an
unlimited number of program modules.Regards
Florian Reiser
Sai Hertz And Control Systems wrote:
This was great help loads of thanks
Now its upto me to convert it into laymans language.
Those limitations don't really describe what the real problems of FoxPro
are. I've used FoxPro since the days it was a product of Fox Corporation
so I know indepth all the issues.
The biggest problem: completely and absolutely multi-user unsafe. If two
machines try to update the same record and append to the safe table, one
of the following things may occur:
1) One machine gets stuck "waiting to lock" and never ever ever comes
back to life. 70%
2) FoxPro on one or both machines immediately crashes with a Windows
exception error. 25%
3) Indexes get corrupted 4%
4) A garbage record is inserted 1%
There is a way to solve the multi-user problem but it requires you to
write your own table/record locking mechanisms. Basically, if you try to
use FoxPro's RLOCK() or LOCK(), you are screwed. However, exclusive file
handles on a shared network drive seemed pretty solid. (My experience on
SAMBA, Netware and NT server -- dunno about Win98 file sharing though.)
You just suffer a huge performance penalty as file creation/directory
scanning incurs a high overhead. You also run the risk where if your
code doesn't release locks, nobody else could ever do any transactions
since they aren't auto released when a table is closed or a record
pointer moved.
Indexes also always get corrupted sooner or later whenever you exceed a
table size threshold. Corruption of indexes will exhibit the following
symptoms:
1) Searches get stuck in infinite loops 60%
2) Searches return the wrong results 30%
3) FoxPro crahses with a Windows exception error 5%
4) FoxPro just simply shuts down without any notification 5%
Now, that being said, we still use FoxPro at our company. There are some
things it is really good for like processing & manipulating bulk data.
If I had to use perl or java or whatever to process comma delimited
files or badly maintained excel spreadsheets, I would go nuts. There's
just so many commands for manipulating data that make life much easier.
We then use ODBC to update the "final" versions residing on Postgresql.
What I want is some support from this good community to give me some
1. Tips
2. Links
3. Advise
for FoxPro and its limits (As could be told to a layman) as how to
crush my competitor for M$ tools,
Its time to prove The M$ Guys that they have $$$$$ Power and we the
GNU people have a
social perspective of doing work.
This may be better posted on a Pg advocacy list, but anyway...
Problems with FoxPro:
1. It corrupts itself frequently. Table indexes, database indexes,
memory files, all tend to get corrupted.
2. Stupid, arbitrary limits on things like string lengths.
3. It's an ancient, dying system that few people know very well.
The first reason will probably be the most important to your customers.
People don't like having to call the computer guy every week or two
when an index gets currupted.
Good luck,
Jeremy
You should check in on the OpenOffice.org website discussion group.
There are a great deal of people that follow the politics of M$ there,
especially global trends. They would like to keep to the topic,
OpenOffice but the topics they cover are trends with Linux that affect
many applications including PostgreSQL.
One particularly interesting gentleman is San Francisco attorney
Christian Einfeldt (einfeldt@earthlink.com). He seems to have the inside
scoop on many things relating to computing trends and politics in the IT
industry.
I am sure you can find the amunition that you need there to persuade
clients that M$ is a marketing machine that also does software as
opposed to OpenSource which is purely a software driven movement.
Good luck.
Kent N
On Sun, 2003-12-14 at 10:18, Sai Hertz And Control Systems wrote:
Hello all ,
I am a OpenSource S/W developer and my clients are from remote part of
Himachal Pradesh India.
I am providing my clients,
software
Build on PostgreSQL 7.3.x as backed
and yes , they (clients) ought to save a lot while using my software as
it runs on Linux
But theirs one Prick Our Competitor he is providing solution in what else
FoxPro + Win98
and this competitor justifies his software as Superior because some of
the Indian local banks use this
clumsy set of tool to manage their bureaucratic banking work system.What I want is some support from this good community to give me some
1. Tips
2. Links
3. Advise
for FoxPro and its limits (As could be told to a layman)
as how to crush my competitor for M$ tools,
Its time to prove The M$ Guys that they have $$$$$ Power and we the GNU
people have a
social perspective of doing work.Would be greatefull for all your Comments / Bashing and yes Support
Please..........................
To Add More :
My Clients are Agriculture Banks and cannot afford the M$ tools. and yes
all the Win98 installation on their computers are
pirated.Regards,
V Kashyap---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
joining column's datatypes do not match
--
Kent L. Nasveschuk <kent@wareham.k12.ma.us>