Welcome To The Home Of The Visual FoxPro Experts  
home. signup. forum. archives. search. google. articles. downloads. faq. members. weblogs. sponsors. rss.
 From: Sandeep Misra
  Where is Sandeep Misra?
 Shelton
 Connecticut - United States
 Sandeep Misra
 To: Ilya Rabyy
  Where is Ilya Rabyy?
 Fountain Valley
 California - United States
 Ilya Rabyy
 Tags
Subject: RE: Best Coding Practices for Newbies
Thread ID: 160033 Message ID: 169799 # Views: 63 # Ratings: 0
Version: Visual FoxPro 8 Category: General VFP Topics
Date: Saturday, April 26, 2008 4:16:39 AM         
   


This thread is too interesting.. sort of brushing the basics.. here my few observations:

1. Importance of Indexing
Recently i ran into a case where we had to deal with millions of records in dbf files. If i want to get a value from the table then i can very well run a select query to get the data.. But what i observed was that the time of response was too slow. In a production environment sometimes even a couple of seconds can be irritating..!!

There can be a secondary solution to this too. What we did was, we created a compound index on the columns based on which we had to derive to a value.

For Eg. if my select query were to look like
SELECT AVALUE FROM MYTABLE.DBF WHERE MYTABLE.B = X .AND. MYTABLE.C = "Y" .AND. MYTABLE.D = "Z"
;

then i create an index as follows:
SELECT MYTABLE.DBF
INDEX ON STR(B,3)+C+D TAG MYCOMPOUNDINDEX


and my select query should look like this:
SELECT AVALUE FROM MYTABLE.DBF WHERE STR(B,3)+C+D = STR(X,3)+"Y"+"Z"


This reduces my response time of the database by more than 300%. We can work on millions of data in a minute fraction of a second.
There is a catch in this:
Make sure that all the indexing columns are of the same data type (preferrably character)

In case you need to access the table for some other query then you can create multiple compound indexes on the table and whenever you want to use the table then do a SET ORDER TO NEWTAG

2. One more common mistake that many do on tables. While working with tables make sure that you are restoring back the original filter conditions, indexes etc. Same with the work area and alias. Before opening a new table in a project, store the original alias using the ALIAS() function and the original active workarea using the SELECT() function.
For Eg.
LOCAl lcAlias, lnWorkArea
lcAlias = ALIAS()                      &&Store the original table alias
SELECT MYNEWTABLE.DBF ALIAS NEWALIAS   &&Open a new table in work area
...
USE				       &&Use the new table after you are done with it
SELECT lcAlias			       &&Restore back the alias

3. It is always a good practice to use macros in .def or header files for numeric values. This way if there is a change in the value then you only need to go and change the value in the def file instead of changing all over the code.

4. DIFFERENCE BETWEEN COUNT TO and _TALLY
In case you are using a SELECT query to get some rows to a cursor or a temporary table, and then you want to know if any row is retrieved then it is not a good practice to use COUNT TO for the purpose. _TALLY can be used instead.

For Eg.
Don't use..
LOCAL lnSize
SELECT X FROM MY TABLE WHERE TABLE.COL = "A"
COUNT TO lnSize
IF lnSize > 0
   ....
   ....
ENDIF

Instead use
SELECT X FROM MY TABLE WHERE TABLE.COL = "A"
IF _TALLY > 0
   ....
   ....
ENDIF

This is because COUNT TO will take your table cursor to the EOF file which you might not want. its not the case with _TALLY.

5. A common mistake among newbees.. Don't use a lot of IF ELSE statements.. instead use the DO CASE.. ENDCASE statement.

6. Keep the code presentable by keeping the code neat by proper indentation. It helps in easy reading of the code. Try to convert TABS to spaces in the EDIT --> Properties window.

Hope this will be of some help.
Will keep posting as and when i remember something.

Thanks
Sandeep



COMPLETE THREAD
Best Coding Practices for Newbies Posted by Dan Baker @ 2/11/2008 9:45:47 PM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 2/11/2008 10:20:17 PM
RE: Best Coding Practices for Newbies Posted by Marcia Akins @ 2/11/2008 10:37:35 PM
RE: Best Coding Practices for Newbies Posted by Bernard Bout @ 2/12/2008 3:13:39 AM
RE: Best Coding Practices for Newbies Posted by tushar @ 2/12/2008 3:44:07 PM
RE: Best Coding Practices for Newbies Posted by Glenn Villar @ 4/26/2008 8:44:34 AM
RE: Best Coding Practices for Newbies Posted by Cetin Basoz @ 2/12/2008 3:52:43 PM
RE: Best Coding Practices for Newbies Posted by Leslie Botchway @ 2/12/2008 11:12:49 PM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 2/13/2008 2:12:32 AM
RE: Best Coding Practices for Newbies Posted by Leslie Botchway @ 4/28/2008 1:38:57 PM
RE: Best Coding Practices for Newbies Posted by Jun Tangunan @ 4/28/2008 3:02:59 PM
RE: Best Coding Practices for Newbies Posted by Lyrad Bangoy @ 4/29/2008 9:33:26 AM
RE: Best Coding Practices for Newbies Posted by Christian Tabligan @ 4/29/2008 10:05:09 AM
RE: Best Coding Practices for Newbies Posted by Lyrad Bangoy @ 4/29/2008 10:19:00 AM
RE: Best Coding Practices for Newbies Posted by Cetin Basoz @ 4/29/2008 10:49:48 AM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/29/2008 7:31:25 PM
RE: Best Coding Practices for Newbies Posted by Cetin Basoz @ 2/13/2008 11:15:28 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 2/14/2008 7:20:53 PM
RE: Best Coding Practices for Newbies Posted by Pamela Thalacker @ 2/12/2008 9:17:58 PM
RE: Best Coding Practices for Newbies Posted by Tamar Granor @ 2/12/2008 11:13:57 PM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 2/13/2008 2:17:48 AM
RE: Best Coding Practices for Newbies Posted by Bernard Bout @ 2/13/2008 5:55:54 AM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 2/13/2008 10:28:13 AM
RE: Best Coding Practices for Newbies Posted by Christian Tabligan @ 2/13/2008 2:37:30 PM
RE: Best Coding Practices for Newbies Posted by Ilya Rabyy @ 2/13/2008 7:14:07 PM
RE: Best Coding Practices for Newbies Posted by Andy Kramek @ 2/13/2008 7:39:02 PM
RE: Best Coding Practices for Newbies Posted by Ilya Rabyy @ 2/13/2008 8:12:51 PM
RE: Best Coding Practices for Newbies Posted by Christian Tabligan @ 2/13/2008 7:46:29 PM
RE: Best Coding Practices for Newbies Posted by Ilya Rabyy @ 2/13/2008 8:28:26 PM
RE: Best Coding Practices for Newbies Posted by Christian Tabligan @ 2/13/2008 8:48:11 PM
RE: Best Coding Practices for Newbies Posted by Ilya Rabyy @ 2/13/2008 9:01:18 PM
RE: Best Coding Practices for Newbies Posted by Juan Antonio Santana @ 2/13/2008 3:46:59 PM
RE: Best Coding Practices for Newbies Posted by Ilya Rabyy @ 2/13/2008 7:28:57 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 2/14/2008 7:31:37 PM
RE: Best Coding Practices for Newbies Posted by Ilya Rabyy @ 2/14/2008 8:45:29 PM
RE: Best Coding Practices for Newbies Posted by Sandeep Misra @ 4/26/2008 4:16:39 AM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 4/26/2008 2:36:22 PM
RE: Best Coding Practices for Newbies Posted by Sandeep Misra @ 4/28/2008 5:12:22 PM
RE: Best Coding Practices for Newbies Posted by Tamar Granor @ 4/28/2008 10:51:51 PM
RE: Best Coding Practices for Newbies Posted by Anders Altberg @ 4/27/2008 1:18:05 AM
RE: Best Coding Practices for Newbies Posted by tushar @ 4/27/2008 7:39:42 AM
RE: Best Coding Practices for Newbies Posted by Anders Altberg @ 4/27/2008 12:59:24 PM
RE: Best Coding Practices for Newbies Posted by tushar @ 4/27/2008 2:04:48 PM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 4/27/2008 2:21:02 PM
RE: Best Coding Practices for Newbies Posted by Anders Altberg @ 4/28/2008 12:56:54 AM
RE: Best Coding Practices for Newbies Posted by tushar @ 4/28/2008 7:02:40 AM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/28/2008 1:33:37 PM
RE: Best Coding Practices for Newbies Posted by Anders Altberg @ 4/28/2008 9:06:34 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/28/2008 9:40:31 PM
RE: Best Coding Practices for Newbies Posted by tushar @ 4/28/2008 9:54:04 PM
RE: Best Coding Practices for Newbies Posted by Anders Altberg @ 4/29/2008 12:38:25 AM
RE: Best Coding Practices for Newbies Posted by tushar @ 4/29/2008 6:23:59 AM
RE: Best Coding Practices for Newbies Posted by Jun Tangunan @ 4/29/2008 7:33:02 AM
RE: Best Coding Practices for Newbies Posted by Anders Altberg @ 4/29/2008 3:43:15 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/29/2008 7:39:47 PM
RE: Best Coding Practices for Newbies Posted by Anders Altberg @ 4/29/2008 8:54:01 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/30/2008 1:08:53 AM
RE: Best Coding Practices for Newbies Posted by tushar @ 4/30/2008 6:51:25 AM
RE: Best Coding Practices for Newbies Posted by Kevin @ 4/26/2008 6:47:17 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/26/2008 10:09:55 PM
RE: Best Coding Practices for Newbies Posted by Kevin @ 4/27/2008 1:19:56 AM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 4/27/2008 1:35:13 AM
RE: Best Coding Practices for Newbies Posted by Kevin @ 4/27/2008 1:45:30 AM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 4/27/2008 2:49:46 AM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/27/2008 5:09:04 AM
RE: Best Coding Practices for Newbies Posted by Ken Murphy @ 4/27/2008 2:29:00 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/27/2008 4:54:49 PM
RE: Best Coding Practices for Newbies Posted by anton d @ 4/26/2008 7:47:01 PM
RE: Best Coding Practices for Newbies Posted by Garth Groft @ 4/28/2008 8:59:33 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/28/2008 9:41:17 PM
RE: Best Coding Practices for Newbies Posted by tushar @ 4/28/2008 10:00:24 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/28/2008 11:14:16 PM
RE: Best Coding Practices for Newbies Posted by Tamar Granor @ 4/28/2008 10:56:38 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/29/2008 12:14:37 AM
RE: Best Coding Practices for Newbies Posted by Anders Altberg @ 4/29/2008 12:50:06 AM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/29/2008 7:41:24 PM
RE: Best Coding Practices for Newbies Posted by Garth Groft @ 4/29/2008 9:32:04 PM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/30/2008 1:11:06 AM
RE: Best Coding Practices for Newbies Posted by Tamar Granor @ 4/30/2008 1:53:41 AM
RE: Best Coding Practices for Newbies Posted by Garth Groft @ 4/30/2008 2:10:22 AM
RE: Best Coding Practices for Newbies Posted by Tamar Granor @ 4/30/2008 1:50:36 AM
RE: Best Coding Practices for Newbies Posted by Bernard Bout @ 4/30/2008 2:43:38 AM
RE: Best Coding Practices for Newbies Posted by Mike Yearwood @ 4/30/2008 3:45:10 PM
RE: Best Coding Practices for Newbies Posted by Lyrad Bangoy @ 4/29/2008 9:37:22 AM