Welcome To The Home Of The Visual FoxPro Experts  
home. signup. forum. archives. search. google. articles. downloads. faq. members. weblogs. sponsors. rss.
 From: Anders Altberg
  Where is Anders Altberg?
 Uppsala
 Sweden
 Anders Altberg
 To: Andy Kramek
  Where is Andy Kramek?
 Westminster Circle, Akron
 Ohio - United States
 Andy Kramek
 Tags
Subject: RE: Bad code I've seen
Thread ID: 138614 Message ID: 193145 # Views: 47 # Ratings: 0
Version: Not Applicable Category: Off-topic
Date: Monday, September 08, 2008 1:29:58 PM         
   


> > Have you any examples of poor or even terrible code that has really left you scrambling for a resolution to a weird error?
>
>
SELECT CPY.company_name, CTC.firstname, CTC.lastname  ;
>   FROM company CPY ;
>        LEFT OUTER JOIN contacts CTC ON CTC.companyfk = CPY.companypk ;
>  WHERE CPY.company_name LIKE "A%" ;
>   INTO CURSOR cur_list
> 
> SELECT cur_list
> SCAN
>   lcName = ALLTRIM( lastname ) + IIF( NOT EMPTY( firstname ), ", " + ALLTRIM( firstname ), "" )
>   *** More code here
> ENDSCAN

>
> The catch above? No test for NULLS! Note the OUTER JOIN in the query. Concatenating the names like this results in NULL if either the First, or Last name is NULL. It is an anomaly (if not actually a bug) that ALLTRIM( NULL ) returns NULL and not an error even though attempting to ALLTRIM() any other invalid data does throw an error.
>
> Regards
> Andy Kramek
> Microsoft MVP (Visual FoxPro)
> Tightline Computers Inc, Akron Ohio, USA

If there's no contact for the company both name columns will be Null. You couldn't get a case where just the firstname is null, but lastname isn't, could you? I assume the default for the column s must be '', and NOT NULL.

-Anders



COMPLETE THREAD
Bad code I've seen Posted by Paul Gibson @ 7/17/2007 11:33:31 AM
RE: Bad code I've seen Posted by Boudewijn Lutgerink @ 7/17/2007 12:14:16 PM
RE: Bad code I've seen Posted by Ken Murphy @ 7/19/2007 2:27:44 AM
RE: Bad code I've seen Posted by Christian Tabligan @ 7/19/2007 3:12:26 AM
RE: Bad code I've seen Posted by Cetin Basoz @ 7/17/2007 12:24:11 PM
RE: Bad code I've seen Posted by Brian Walsh @ 9/7/2008 10:44:34 PM
RE: Bad code I've seen Posted by Cetin Basoz @ 9/8/2008 12:42:39 PM
RE: Bad code I've seen Posted by Ilya Rabyy @ 9/8/2008 6:11:29 PM
RE: Bad code I've seen Posted by Brad Schulz @ 9/8/2008 6:16:37 PM
RE: Bad code I've seen Posted by Ilya Rabyy @ 9/8/2008 6:32:11 PM
RE: Bad code I've seen Posted by Mike Yearwood @ 9/9/2008 1:07:25 AM
RE: Bad code I've seen Posted by Cetin Basoz @ 9/9/2008 1:07:04 AM
RE: Bad code I've seen Posted by Mike Yearwood @ 9/9/2008 3:38:23 PM
RE: Bad code I've seen Posted by Ilya Rabyy @ 9/9/2008 4:55:21 PM
RE: Bad code I've seen Posted by Mike Yearwood @ 9/10/2008 10:08:37 PM
RE: Bad code I've seen Posted by Ilya Rabyy @ 9/9/2008 4:43:28 PM
RE: Bad code I've seen Posted by Bernard Bout @ 9/12/2008 8:33:55 AM
RE: Bad code I've seen Posted by Cetin Basoz @ 9/12/2008 3:09:16 PM
RE: Bad code I've seen Posted by Mike Yearwood @ 9/12/2008 4:00:48 PM
RE: Bad code I've seen Posted by Bernard Bout @ 9/13/2008 6:01:30 AM
RE: Bad code I've seen Posted by Andy Kramek @ 7/17/2007 12:55:31 PM
RE: Bad code I've seen Posted by Thomas Bähr @ 7/17/2007 1:05:35 PM
RE: Bad code I've seen Posted by Andy Kramek @ 7/17/2007 11:52:45 PM
RE: Bad code I've seen Posted by Paul Gibson @ 7/18/2007 10:31:47 AM
RE: Bad code I've seen Posted by Anders Altberg @ 9/8/2008 1:29:58 PM
RE: Bad code I've seen Posted by Andy Kramek @ 9/8/2008 2:36:10 PM
RE: Bad code I've seen Posted by Brad Schulz @ 9/8/2008 3:52:38 PM
RE: Bad code I've seen Posted by Andy Kramek @ 9/9/2008 7:05:38 AM
RE: Bad code I've seen Posted by Jim Booth @ 9/9/2008 4:29:05 PM
RE: Bad code I've seen Posted by Andy Kramek @ 9/10/2008 1:33:51 PM
RE: Bad code I've seen Posted by Brad Schulz @ 9/9/2008 6:19:29 PM
RE: Bad code I've seen Posted by Jim Booth @ 9/9/2008 7:23:14 PM
RE: Bad code I've seen Posted by Andy Kramek @ 9/10/2008 1:39:51 PM
RE: Bad code I've seen Posted by Thomas Bähr @ 7/17/2007 1:02:29 PM
RE: Bad code I've seen Posted by Eric den Doop @ 7/18/2007 11:41:02 AM
RE: Bad code I've seen Posted by Tamar Granor @ 7/18/2007 10:19:47 PM
RE: Bad code I've seen Posted by Andy Kramek @ 7/19/2007 2:28:35 PM
RE: Bad code I've seen Posted by Barbara Peisch @ 7/19/2007 5:54:40 AM
RE: Bad code I've seen Posted by Eric den Doop @ 7/19/2007 7:00:56 AM
RE: Bad code I've seen Posted by Barbara Peisch @ 7/19/2007 8:00:59 AM
RE: Bad code I've seen Posted by tushar @ 7/19/2007 2:36:45 PM
RE: Bad code I've seen Posted by Eric den Doop @ 7/19/2007 2:57:49 PM
RE: Bad code I've seen Posted by Christian Pano @ 7/19/2007 11:34:31 AM
RE: Bad code I've seen Posted by Cetin Basoz @ 7/19/2007 12:12:56 PM
RE: Bad code I've seen Posted by Paul Gibson @ 7/19/2007 12:21:32 PM
RE: Bad code I've seen Posted by Cetin Basoz @ 7/19/2007 12:42:34 PM
RE: Bad code I've seen Posted by Paul Gibson @ 7/20/2007 11:36:26 AM
RE: Bad code I've seen Posted by Cetin Basoz @ 7/20/2007 3:13:48 PM
RE: Bad code I've seen Posted by Christian Pano @ 7/23/2007 11:10:22 AM
RE: Bad code I've seen Posted by John Peart @ 7/19/2007 12:18:54 PM
RE: Bad code I've seen Posted by Ken Murphy @ 7/19/2007 2:09:01 PM
RE: Bad code I've seen Posted by tushar @ 7/19/2007 2:24:51 PM
RE: Bad code I've seen Posted by Cetin Basoz @ 7/19/2007 2:44:42 PM
RE: Bad code I've seen Posted by tushar @ 7/19/2007 3:42:47 PM
RE: Bad code I've seen Posted by Ken Murphy @ 7/19/2007 8:22:04 PM
RE: Bad code I've seen Posted by Barbara Peisch @ 7/19/2007 8:34:36 PM
RE: Bad code I've seen Posted by Ken Murphy @ 7/19/2007 10:19:29 PM
RE: Bad code I've seen Posted by Barbara Peisch @ 7/19/2007 10:26:38 PM
RE: Bad code I've seen Posted by Thomas Bähr @ 7/20/2007 11:11:53 AM
RE: Bad code I've seen Posted by Ronan Masangcay @ 7/20/2007 4:48:50 AM
RE: Bad code I've seen Posted by Mike Yearwood @ 7/21/2007 2:35:23 AM
RE: Bad code I've seen Posted by Kurt Westerlund @ 9/12/2008 4:57:50 PM