The argument for prepare is a SQL statement, not the name of a file.
Also, AFAIK, you can't prepare multiple statements at a time, only one at
a time (and including a ; may or may not work, depending on your platform;
I'm not DB2/DBI literate).
Have you gotten this to work?
$sth = $dbh->prepare("select * from foo");
$sth->execute();
For dump_results, you need to re-read the docs. Your example isn't
anything close to what I see in 'perldoc DBI':
$rows = $sth->dump_results($maxlen, $lsep, $fsep, $fh);
Which, at a minimum, tells me you need to open and close 'genpak.sql'
yourself.
Finally, do() will do a prepare and execute on a single SQL statement.
So, if your goal is to generate a script and execute it, you need to write
your own wrapper to read, parse, and execute each statement. Another
alternative is to create a stored procedure, and execute it, but I don't
think that's an option with DB2, is it?
HTH,
Dave
>
> Hi eveyone;
>
> Can someone help me with this: I am trying to do a prepare and execute a .sql when
>connected to a DB2 database using DBI. The foo.sql is the ($sqlfilename)has to
>($genpak.sql) here is the code:
>
> my $sth = $dbh->prepare($sqlfilename);
> $sth->execute();
> $rows = DBI::dump_results($sth,genpak.sql);
> $sth = $dbh->do($genpak);
>
>
> any help would be cool.Thanks
>
> Steve
>
>
>
> ---------------------------------
> Do you Yahoo!?
> Yahoo! Mail Plus - Powerful. Affordable. Sign up now