|
|
sybperl-l Archive
Up Prev Next
From: Michael Peppler <mpeppler at MBAY dot NET>
Subject: Re: SybPerl Question
Date: Jan 21 1998 6:54PM
Connie Zhang wrote:
>
> Hi, everyone,
>
> I was using SybPerl/DBlib for my Perl scripts.
> Things work fine so far until I got stuck with
> one problem...Wonder if someone can give some
> hints...
>
Several problems.
First you mix Sybase::Sybperl and Syabse::DBlib calls. That
works, but it's very bad form.
Remove the
use Sybase::Sybperl
statement, and change all the &dbxxx($dbh) to $dbh->dbxxx.
>
> Msg 207, Level 16, State 2
> Server 'CMOQA', Line 12
> Invalid column name 'czhang'.
This is:
SELECT \@own_id = owner_id
FROM gml_user
WHERE unix_id = $user_id
You are missing quotes around $user_id (which is almost certainly set
to czhang).
> DB-Library error:
> General SQL Server error: Check messages from the SQL Server.
> Msg 156, Level 15, State 1
> Server 'CMOQA', Line 1
> Incorrect syntax near the keyword 'AND'.
You've submitted the batch to the server, and then *after* that you
try to add additional conditionals.
You must build your entire SQL statment first, and then submit it:
WHERE A.comp_country_cd = C.country_cd
AND A.ret_fax_dt = 'Jan 1 1900 12:00AM'
AND A.comp_country_cd = B.country_cd");
&dbsqlexec ($dbh1);
&dbresults ($dbh1);
# This has now been sent to the server (as if you type 'go'
# in isql)
while (&dbnextrow ($dbh1))
{
# do nothing.
}
# Now the server becomes very confused when you send it this
# conditional!
if ($D2 eq "")
{
$dbh1->dbcmd (" AND A.list_cd = '$D1' ");
}
else
{
$dbh1->dbcmd (" AND A.list_cd IN \('$D1', '$D2'\) ");
}
> Msg 137, Level 15, State 1
> Server 'CMOQA', Line 1
> Must declare variable '@list_id'.
Same problem. T-SQL variables live within one command batch.
When you sent the batch to the server (with dbsqlexec) a
new batch is started, and you need to redeclare the variables.
The rest of the errors are all linked to the same problem.
I think that if you move the call the dbsqlexec() to the end of
your script, and submit everything at once (except maybe the
COMMIT TRAN) then things should work a lot better...
Michael
--
Michael Peppler -||- Data Migrations Inc.
mpeppler@datamig.com -||- http://www.mbay.net/~mpeppler
|