Using Variant Arrays

My question is this. I am using the type variant in a program I am writing. Now I created an array using
varArrayCreate and I will put some sample sode below. Now it is easy to read data into the variant array except when you get to the last record to read in and I keep getting list index out of bounds. Now I have tried a few different things to try and stop giving me this error. For example, if I made
the following array
tempArray := varArrayCreate([1,10],varVariant) I tried to
read in only up to tempArray[9] and still get list index is out of bounds. Now this is imossible since I am not at the end of the array. Very strange and if anyone can shed some light on this let me know. I must to doing some damn simple
the wrong way. I had a full head of hair before this problem came up. Cheers.

If (Table2.Findkey([TempJobNo]) = false) then
begin
  TotalFields := Table1.FieldCount ;
  TempArray := varArrayCreate([0,TotalFields-1],varVariant);
    For i := 0 to TotalFields-1 do
    begin
      TempArray[i] := Table1.Fields[i].AsVariant ;
      Table1.Next ;
      TempJobNo := Table1.Fieldbyname('JOB_NO').AsString ;
    end
    else
    begin
      Table1.Next ;
      TempJobNo := Table1.Fieldbyname('JOB_NO').AsString ;
    end;
  end;

 {THANKS IN ADVANCE ANYONE}
westy100697Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Pegasus100397Commented:
Westy,

Your right, sometimes it does help to have another programmer look over your code (works for me!). Anyway your problem is in the Table1.FieldCount loop, it SHOULD be:

TotalFields := Table1.FieldCount-1 ;
TempArray := varArrayCreate([0,TotalFields],varVariant);
For i := 0 to TotalFields do
begin
TempArray[i] := Table1.Fields[i].AsVariant ;

The Array is going out of bounds because of the Fields[i] reference.

Good luck with your project!
Pegasus
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
westy100697Author Commented:
Hey thanks for the help but solved the problem by going away and having a cuppa and it came to me all of a sudden. Happens a lot when you relax for while and come back to it. Will give you the points though cause it is exactly the prob. Thanks muchly !
0
Pegasus100397Commented:
Glad to be of help Westy!

You'll have to reject or accept the answer before the Expert Exchange system will clear it from the list of QX's awaiting answers.

Regards
Pegasus
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Delphi

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.