|
|
sybperl-l Archive
Up Prev Next
From: =?iso-8859-1?Q?Pochet_Fr=E9d=E9ric?=
<Frederic dot Pochet at cockerill-sambre dot com>
Subject: RE: very basic db connection question
Date: Feb 10 1999 9:42AM
here is how to use different db and how to use associative array
use Sybase::CTlib;
print "\n param count >", $#ARGV; ## ko
print "\n user >", $ARGV [0];
print "\n pwd >", $ARGV [1];
print "\n server >", $ARGV [2];
print "\n db >", $ARGV [3];
print "\n table >", $ARGV [4] if ($ARGV [3] ne $ARGV [4]);
print "\n";
$dbh= new Sybase::CTlib $ARGV[0],$ARGV[1],$ARGV[2];
$cSql= "use $ARGV[3]";
($rc = $dbh->ct_execute($cSql)) == CS_SUCCEED
or print "KO - $rc = execute '$cSql'\n"
;
$res_type = 0;
while(($rc = $dbh->ct_results($res_type)) == CS_SUCCEED) {
print "1 - $res_type\n";
}
$cSql='
select ID=i.id, INDID=i.indid, NAME=i.name
from sysindexes i, sysobjects o
where i.id = o.id and o.type=\'U\'
';
if ($ARGV [3] ne $ARGV [4]) {
$cSql="$cSql
and o.id = object_id(\'$ARGV[4]\')
";
}
$cSql="$cSql
order by o.name
";
($rc = $dbh->ct_execute("$cSql")) == CS_SUCCEED
or print "KO - $rc = execute $cSql\n"
;
## récupérer un Associative Array par recopie
## %r= ct_fetch(1)
## ...$r{} ...
$res_type = 0;
$tSql='select ';
while ($dbh->ct_results($restype) == CS_SUCCEED) {
print "2 - $res_type\n";
next unless $dbh->ct_fetchable($restype);
while (%row = $dbh->ct_fetch(1)) {
print $row{ID}, '-', $row{INDID}, '-',$row{NAME},"\n";
}
}
($rc = $dbh->ct_execute("$cSql")) == CS_SUCCEED
or print "KO - $rc = execute $cSql\n"
;
## récupérer un Associative Array par adresse
## $r=ct_fetch(1,1)
## ...$$r{} ...
$res_type = 0;
$tSql='select ';
while ($dbh->ct_results($restype) == CS_SUCCEED) {
print "2 - $res_type\n";
next unless $dbh->ct_fetchable($restype);
while ($row = $dbh->ct_fetch(1,1)) {
print $$row{ID}, '-', $$row{INDID}, '-',$$row{NAME},"\n";
}
}
exit
==========================================
Frederic Pochet
DBA DB Distribuees
Cockerill Sambre
*
Rue Vieille Fosse
B-4400 Flemalle
Belgium
* +32 4 236 20 71
* +32 4 236 21 00
* frederic.pochet@cockerill-sambre.com
==========================================
> ----------
> From: Sheree Hemphill[SMTP:sah18@po.cwru.edu]
> Reply To: SYBPERL-L@listproc.net
> Sent: mardi 9 février 1999 22:06
> To: SybPerl Discussion List
> Subject: very basic db connection question
>
> Hello. I am new to Sybperl, and I would like to use CTlib to connect to a
> database. I can only seem to find code examples which connect to the
> Master
> database, but none which show how to connect to a user-defined database.
> Can someone give me an example of the syntax for this?
>
> Thank you in advance!
> Sheree
>
> ps: The main sample code that I am trying to model after is listed below.
> It was taken from "Sybperl 2.0: Using the Sybase::CTlib module" by Michael
> Peppler. It worked perfectly for me.
>
> #!/usr/local/bin/perl
>
> # Load the Sybase::CTlib module:
> use Sybase::CTlib;
>
> # Allocate a new Database 'handle';
> $dbh = new Sybase::CTlib 'sa', 'oracle8', 'helix';
>
> # Send the query to the server:
> $dbh->ct_execute("select uid, name from sysusers");
>
> # Retrieve the result sets
> while($dbh->ct_results($restype) == CS_SUCCEED) {
>
> # Skip non-fetchable results:
> next unless $dbh->ct_fetchable($restype);
>
> # Retrieve actual data rows:
> while(($uid, $name) = $dbh->ct_fetch) {
> print "$uid - $name\n";
> }
> }
>
|