This line my $name = new profile($var); is to create a new object for each value in $self->tsidsforeach my $var($self->tsids) {
I already have a DBI handle my $connection = $self->connection;
Then I prepare my statement using a placeholder my $sth = $connection->connection->prepare( "SELECT Last_Name = LastName, First_Name = FirstName, Middle_Name = MidName, Job_Title = JobTitle, Birthdate = Birthdate FROM table WHERE database_wide_key = ?" );
This is probably the offending line my @names = ($var);
This is the line where it diesmy $rc = $sth->execute(@names) or die "I'm sorry Dave, I can't do that";
I initially got an error message that the database MS TSQL 6.5 could not implicity convert a VARCHAR to an INT which made me think that Perl was interpolating $var into a "string".
When I use the CONVERT statement, Convert(int, varchar) ?, it tells me that it cannot convert VARCHAR ARRAY(XXXXXXX) into a INT which leads me to believe that I am incorrectly dereferencing the array.This is where I am stuck.
The rest of the code is meant to populate the properties of the object created by the foreach loop.
my $fieldnames = $sth->{NAME}; while(my $row = $sth->fetch) { for (0 .. ( scalar @{ $fieldnames } -1 )) { $_ = '' unless defined +; $_ =~ s/\s//g; my $prop = $fieldnames->[ $_ ]; my $val = $row->[ $_]; $name->$prop($val); } } }
In reply to Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Dereference an array reference
by fmogavero
in thread Dereference an array reference
by fmogavero
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |