Hi to the list,

I am trying (as perl newbie) to fetch the returned value of a SELECT
@@IDENTITY; the database used is MSSSQL on Win2k Server.
The problem is that after the INSERT query i cannot get the returned
value correcly Any suggestion is welcome and appreciate.

thanks in advance.

----[ perl code follow

# perl started with #!/usr/bin/perl -w
# use DBI;
# use scrict;
# use other misc...
# dbh and other still created
# [...]

$query = $dbh->prepare("begin 
 INSERT INTO MAIL (DATEI, DATEM, SUB, OBJ, INV) 
 VALUES ('$today', '$date', $qsubject, $qbody, '$inv_ric'); 
 SELECT [EMAIL PROTECTED]@IDENTITY; end ") or 
 die "Can't prepare the SQL statement: $DBI::errstr";

$query->execute() or die "Can't execute the SQL statement: $DBI::errstr";

my $row = $query->fetchrow_arrayref();
my $inserted_id = $row->[0];

print ("IDENTITY: $inserted_id\n");

my $list = $query->dump_results();
print $list;

----[ sample output follow

query = begin INSERT INTO MAIL (DATEI, DATEM, SUB, OBJ,
INV) VALUES ('4/23/104 13:58:43', '05/11/2004 11:56:51',
'test1
', 'ARRAY(0x84eb058)', '1'); SELECT @@IDENTITY; end
IDENTITY:

0 rows
0

-----[ sample SQL client transcript

SQL>  INSERT INTO MAIL (DATEI, DATEM, SUB, OBJ, INV)
VALUES ('4/23/104 13:58:43', '05/11/2004 11:56:51', 'test1',
'ARRAY(0x84eb058)', '1'); SELECT @@IDENTITY;
query =  INSERT INTO MAIL (DATEI, DATEM, SUB, OBJ,
INV) VALUES ('4/23/104 13:58:43', '05/11/2004 11:56:51',
'test1', 'ARRAY(0x84eb058)', '1'); SELECT @@IDENTITY;
+-----------+
|           |
+-----------+
| 327       |
+-----------+
1 rows affected
SQL>


PS which is the appropriate function to fetch data from $qbody and
insert into query the data insted of ARRAY(0x....) ?

Reply via email to