Re: TZF - Many Thanks but more help needed

Jerry Mallett <[email protected]>
Newsgroups gmane.comp.lang.delphi.topaz
Message-ID <[email protected]>
Hi Marie

Thanks for the response.  It's taken me a while to get back to you.  Got
caught up in another project..just getting to the reponses now.

OK, your idea is a good one but the problem is that we would have a lot of
names the same.  Here in Ireland we have 100's if not 1000's of
McLaughlin's, Doherty's, Murphy's, etc so trying to match the names will not
help.

I would have to match the First and Last name's and there Street addresses
or phone nos.

I would be interested in that piece of code though.

Many thanks

Jerry

----- Original Message -----
From: "Marie Vihonsky" <[email protected]>
To: <[email protected]>
Sent: Monday, February 10, 2003 3:58 AM
Subject: Re: TZF - Many Thanks but more help needed


> Hi Jerry,
>
> A simple question here - Why are you 'comparing' the ID's.
>
> If the 2nd database (300 records) got trashed and you know that the ID's
> should 'match' bewteen the 2 databases, why not just 'regenerate' the
> ID's in the 2nd database using the ID from the first database?
>
> My thought would be to:
> 1 - have the first database indexed on 'name'
> 2 - have the second database NOT indexed
> 3 - flip thru the second database, build the 'key' that should match the
> name in the first database, do a FIND, if found, then update ID2. If NOT
> FOUND, then show your messages and decide what to do.
>
> I don't have time tonight to locate some code which will do the above,
> so if you still need it - let me know and I'll look tomorrow.
>
> Marie
>
> Jerry Mallett wrote:
> > Thank you for your response.
> >
> > Code as requested.
> >
> > procedure TForm1.Compare1Click(Sender: TObject);
> > var  fn,ln : string;                                    // FirstName -
> > LastName Varaibles
> >     id1, id2, x,y : Integer;                        // id1 = db1 member
> > and id2 = db2 member (x & y for RecNo and RecCount)
> >     MatchFound : Boolean;                      // wanted to use this to
> > exit loop when a match is found
> > begin
> >   TzDbf.Active := True;
> >   TzDbf.GoTop;
> >     X := 1;                                        // Initialised this
> > for the ShowMessage window to see what was happening
> >     id2 := 0;                                     //  Initialised this
> > for the ShowMessage window to see what was happening
> >     While NOT TzDBF.dEOF Do
> >     Begin
> >       MatchFound := False;
> >       fn := Trim(TzDBF.GetCField('firstname'));              // get
> > firstname
> >       ln := Trim(TzDBF.GetCField('lastname'));             // get
> > lastname
> >       id1 := TzDBF.GetLongField('memberid');             // get current
> > id number
> >
> >       //  Show it on screen to see if all is ok
> >
> >       ShowMessage('Competitor - '+fn+' '+ln+
> >                              ' is currently '+IntToStr(id1)+
> >                              ' but should be '+IntToStr(id2));
> >
> >       CompetitorsFrm.Competitors.Active := True;
> >       CompetitorsFrm.Competitors.GoTop;
> >       y := CompetitorsFrm.Competitors.RecCount;   // get the total
> > number of records in main database (db1)
> >       For x := 1 to y Do
> >         Begin
> >           If (fn =
> > Trim(CompetitorsFrm.Competitors.GetCField('firstname'))) AND
> >              (ln =
> > Trim(CompetitorsFrm.Competitors.GetCField('lastname'))) Then
> >
> >              Begin         // we found a match so enter and
> > update/correct the db2 file
> >               MatchFound := True;
> >               id2 :=
> > CompetitorsFrm.Competitors.GetLongField('memberid');  // get the
> > membership number from current record
> >
> >              // lets display it on screen to check we have got this far
> >
> >               ShowMessage( ' Record No.'+IntToStr(x)+
> >                                      ' = Competitor - '+fn+' '+ln+
> >                                      ' is currently '+IntToStr(id1)+
> >                                      ' but should be '+IntToStr(id2));
> >
> >               TzDbf.SetLongField('memberid',id2);  // write it to db2
> >               TzDbf.Post;                                    // post it
> > to db2
> >              End
> >           Else
> >                     //   ok got lost here.....tried to do x := y which
> > is total recordcount so that i could exit loop but it won't compile
> >
> >           If MatchFound Then   // then tried the boolean op. but
> > ....help.
> >          CompetitorsFrm.Competitors.Go(x);
> >
> >         End;  // For x loop
> >       TzDBF.Skip(1); // skip to next record
> >     End;
> > End;
> >
> >
> >
> > R & WL Hamilton wrote:
> >
> >>Can you give a code sample where it crashed? Is is a crash with an error
> >>or an infinite loop of searching?
> >>
> >>How are you comparing db2 to the correct db1 number if your db2 member
> >>number is  missing or wrong?
> >>Roger
> >>----- Original Message -----
> >>From: "Jerry Mallett" <[email protected]>
> >>To: <[email protected]>
> >>Sent: February 9, 2003 7:30 PM
> >>Subject: TZF - Many Thanks but more help needed
> >>
> >>
> >>
> >>>Hi Guys.
> >>>
> >>>Many thanks to all those that responded to my last problem.
> >>>
> >>>Got another one now which I have just spent 6 hours on without success.
> >>>
> >>>I'm self taught and still learning so go easy on me here.
> >>>
> >>>Two databases, First One containing all the proper and correct info on
> >>>everyone in the club.  About 1000 names addresses etc, plus a
membership
> >>>number.
> >>>
> >>>Second one containing some 300 of the same names and membership numbers
> >>>but with different data.
> >>>
> >>>My problem is the membership nos have gone belly up in the second
> >>>database and I tried to write a routine to compare db2 with db1, check
> >>>the membership number from db2 with the original in db1, if they didn't
> >>>match update db2 with the proper membership number from db1.
> >>>
> >>>Used a WHILE loop to get info from each record in turn from db2 and
> >>>nested a for next loop within the while loop which went through each
> >>>record in turn of db1 to do a comparison. It only partly worked then
> >>>crashed.
> >>>
> >>>Glad I don't do this for a living.  I'd be an extremely poor man today.
> >>>lol
> >>>
> >>>Needless to say I haven't succeeded and was wondering if anyone can
> >>>help...please.....
> >>>
> >>>
> >>>Jerry
>
>

==^================================================================
This email was sent to: [email protected]

EASY UNSUBSCRIBE click here: http://topica.com/u/?clvXPN.a5kvff.Z2NsZHQt
Or send an email to: [email protected]

TOPICA - Start your own email discussion group. FREE!
http://www.topica.com/partner/tag02/create/index2.html
==^================================================================
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.