亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? psa-chapter07.txt

?? perl語言的經典文章
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
Example code from Perl for System Administration by David N. Blank-Edelman
O'Reilly and Associates, 1st Edition, ISBN 1-56592-609-9

Chapter Seven
=============

#*
#* connecting/disconnecting to an SQL server using DBI
#*

use DBI;

# connect using to the database named $database using given 
# username and password, return a database handle
$database = "sysadm";
$dbh = DBI->connect("DBI:mysql:$database",$username,$pw);
die "Unable to connect: $DBI::errstr\n" unless (defined $dbh);

$dbh = DBI->connect("DBI:mysql:$database",$username,$pw,{RaiseError => 1});

# <perform tasks>

# tells server you will not need more data from statement handle
# (optional, since we're just about to disconnect)
$sth->finish;  
# disconnects handle from database
$dbh->disconnect;
-------
#*
#* two ways to send commands to an SQL using DBI
#*

$results=$dbh->do(q{UPDATE hosts 
                    SET bldg = 'Main' 
                    WHERE name = 'bendir'});
die "Unable to perform update:$DBI::errstr\n" unless (defined $results)

### OR ###

$sth = $dbh->prepare(q{SELECT * from hosts}) or 
  die "Unable to prep our query:".$dbh->errstr."\n";
$rc = $sth->execute or 
  die "Unable to execute our query:".$dbh->errstr."\n";
-------
#*
#* two examples of placeholder use with DBI
#*

@machines = qw(bendir shimmer sander);
$sth = $dbh->prepare(q{SELECT name, ipaddr FROM hosts WHERE name = ?});
foreach $name (@machines){
  $sth->execute($name);
  #<do-something-with-the-results>
}

### OR ###

$sth->prepare(
   q{SELECT name, ipaddr FROM hosts 
     WHERE (name = ? AND bldg = ? AND dept = ?)});
$sth->execute($name,$bldg,$dept);
-------
#*
#* several ways to retrieve query results using DBI
#*

# the query
$sth = $dbh->prepare(q{SELECT name,ipaddr,dept from hosts}) or
  die "Unable to prepare our query: ".$dbh->errstr."\n";
$sth->execute or die "Unable to execute our query: ".$dbh->errstr."\n";

while ($aref = $sth->fetchrow_arrayref){
  print "name: "   .  $aref->[0] . "\n";
  print "ipaddr: " .  $aref->[1] . "\n";
  print "dept: "   .  $aref->[2] . "\n";
}

### OR ###

while ($href = $sth->fetchrow_hashref){
  print "name: "   .  $href->{name}  . "\n";
  print "ipaddr: " .  $href->{ipaddr}. "\n";
  print "dept: "   .  $href->{dept}  . "\n";
}

### OR ###

$aref_aref = $sth->fetchall_arrayref;
foreach $rowref (@$aref_aref){
  print "name: "   .  $rowref->[0] . "\n";
  print "ipaddr: " .  $rowref->[1] . "\n";
  print "dept: "   .  $rowref->[2] . "\n";
  print '-'x30,"\n";
}

### OR ###

$aref_aref = $sth->fetchall_arrayref;
foreach $rowref (@$aref_aref){
  for ($i=0; $i < $sth->{NUM_OF_FIELDS};i++;){
    print $sth->{NAME}->[$i].": ".$rowref->[$i]."\n";
  } 
  print '-'x30,"\n";
}
-------
#*
#* snippet showing bind_columns from DBI
#*

$sth = $dbh->prepare(q{SELECT name,ipaddr,dept from hosts}) or
  die "Unable to prep our query:".$dbh->errstr".\n";
$rc = $sth->execute or 
  die "Unable to execute our query:".$dbh->errstr".\n";

# these variables will receive the 1st, 2nd and 3rd columns 
# from our SELECT
$rc = $sth->bind_columns(\$name,\$ipaddr,\$dept);

while ($sth->fetchrow_arrayref){
    # $name, $ipaddr, and $dept are automagically filled in from 
    # the fetched query results row
    #<do-something-with-the-results>
}
-------
#*
#* creating a DSN and connecting to a server, disconnecting and removing
#* the DSN using ODBC
#*

# creates a user DSN to a Microsoft SQL Server
# note: to create a system DSN, substitute ODBC_ADD_SYS_DSN 
# for ODBC_ADD_DSN
if (Win32::ODBC::ConfigDSN(
                   ODBC_ADD_DSN, 
                   "SQL Server", 
                   ("DSN=PerlSysAdm", 
                    "DESCRIPTION=DSN for PerlSysAdm", 
                    "SERVER=mssql.happy.edu",  # server name
                    "ADDRESS=192.168.1.4",     # server IP addr
                    "DATABASE=sysadm",         # our database
                    "NETWORK=DBMSSOCN",        # TCP/IP Socket Lib
                   ))){
    print "DSN created\n";
                             }
else {
    die "Unable to create DSN:" . Win32::ODBC::Error() . "\n";
}

# connect to the named DSN, returns a database handle
$dbh=new Win32::ODBC("DSN=PerlSysAdm;UID=$username;PWD=$pw;");
die "Unable to connect to DSN PerlSysAdm:" . Win32::ODBC::Error() . "\n" 
  unless (defined $dbh);

#<perform operations>

$dbh->close();

# replace ODBC_REMOVE_DSN with ODBC_REMOVE_SYS_DSN if you created a system DSN
if (Win32::ODBC::ConfigDSN(ODBC_REMOVE_DSN,
                           "SQL Server","DSN=PerlSysAdm")){
    print "DSN deleted\n";
}
else {
    die "Unable to delete DSN:".Win32::ODBC::Error()."\n";
}
-------
#*
#* two examples of sending queries to an SQL server using ODBC 
#*

$rc = $dbh->Sql(q{SELECT * from hosts});

### OR ###

if (defined $dbh->Sql(q{UPDATE hosts 
                        SET bldg = 'Main' 
                        WHERE name = 'bendir'})){
    die "Unable to perform update: ".Win32::ODBC::Error()."\n"
}
else {
    $results = $dbh->RowCount();
}
-------
#*
#* two ways to retrieve results from a server using ODBC
#*

if ($dbh->FetchRow()){
  @ar = $dbh->Data(); 
  #<do-stuff-with-@ar-values>
}

### OR ###

if ($dbh->FetchRow()){
   $ha = $dbh->DataHash('name','ipaddr'); 
   #<do-stuff-with-$ha{name}-and-$ha{ipaddr}>
}
-------
#*
#* documented an MySQL server using DBI
#*

use DBI;

print "Enter user for connect: ";
chomp($user = <STDIN>);
print "Enter passwd for $user: ";
chomp($pw = <STDIN>);

$start= "mysql"; # connect initially to this database

# connect to the start MySQL database
$dbh = DBI->connect("DBI:mysql:$start",$user,$pw);
die "Unable to connect: ".$DBI::errstr."\n" unless (defined $dbh);

# find the databases on the server 
$sth=$dbh->prepare(q{SHOW DATABASES}) or
  die "Unable to prepare show databases: ". $dbh->errstr."\n";
$sth->execute or
  die "Unable to exec show databases: ". $dbh->errstr."\n";
while ($aref = $sth->fetchrow_arrayref) {
    push(@dbs,$aref->[0]);
} 
$sth->finish;

# find the tables in each database
foreach $db (@dbs) {
    print "---$db---\n";
    
    $sth=$dbh->prepare(qq{SHOW TABLES FROM $db}) or
      die "Unable to prepare show tables: ". $dbh->errstr."\n";
    $sth->execute or
      die "Unable to exec show tables: ". $dbh->errstr."\n";

    @tables=();
    while ($aref = $sth->fetchrow_arrayref) {
	push(@tables,$aref->[0]);
    } 

    $sth->finish;
    
   # find the column info for each table
   foreach $table (@tables) {
       print "\t$table\n";

       $sth=$dbh->prepare(qq{SHOW COLUMNS FROM $table FROM $db}) or
	 die "Unable to prepare show columns: ". $dbh->errstr."\n";
       $sth->execute or
	 die "Unable to exec show columns: ". $dbh->errstr."\n";
       
       while ($aref = $sth->fetchrow_arrayref) {
	   print "\t\t",$aref->[0]," [",$aref->[1],"]\n";
       } 

       $sth->finish;
   }
}
$dbh->disconnect;
-------
#*
#* documenting a Sybase server using DBI
#*

use DBI;

print "Enter user for connect: ";
chomp($user = <STDIN>);
print "Enter passwd for $user: ";
chomp($pw = <STDIN>);

$dbh = DBI->connect('dbi:Sybase:',$user,$pw);
die "Unable to connect: $DBI::errstr\n" 
  unless (defined $dbh);

# find the databases on the server 
$sth = $dbh->prepare(q{SELECT name from master.dbo.sysdatabases}) or
  die "Unable to prepare sysdatabases query: ".$dbh->errstr."\n";
$sth->execute or
  die "Unable to execute sysdatabases query: ".$dbh->errstr."\n";

while ($aref = $sth->fetchrow_arrayref) {
    push(@dbs, $aref->[0]);
}
$sth->finish;

foreach $db (@dbs) {
    $dbh->do("USE $db") or
      die "Unable to use $db: ".$dbh->errstr."\n";
    print "---$db---\n";

    # find the tables in each database
    $sth=$dbh->prepare(q{SELECT name FROM sysobjects WHERE type="U"}) or
      die "Unable to prepare sysobjects query: ".$dbh->errstr."\n";
    $sth->execute or
      die "Unable to exec sysobjects query: ".$dbh->errstr."\n";

    @tables=();
    while ($aref = $sth->fetchrow_arrayref) {
        push(@tables,$aref->[0]);
    } 
    $sth->finish;

    # we need to be "in" the database for the next step
    $dbh->do("use $db") or
      die "Unable to change to $db: ".$dbh->errstr."\n";
  
    # find the column info for each table
    foreach $table (@tables) {
	print "\t$table\n";

	$sth=$dbh->prepare(qq{EXEC sp_columns $table}) or
	  die "Unable to prepare sp_columns query: ".$dbh->errstr."\n";
	$sth->execute or
	  die "Unable to execute sp_columns query: ".$dbh->errstr."\n";
	
	while ($aref = $sth->fetchrow_arrayref) {
	    print "\t\t",$aref->[3]," [",$aref->[5],"(",$aref->[6],")]\n";
	} 
	$sth->finish;
    }
}
$dbh->disconnect or
  warn "Unable to disconnect: ".$dbh->errstr."\n";
-------
#*
#* documenting an MS-SQL server using ODBC
#*

use Win32::ODBC;

print "Enter user for connect: ";
chomp($user = <STDIN>);
print "Enter passwd for $user: ";
chomp($pw = <STDIN>);

$dsn="sysadm"; # name of the DSN we will be using

# find the available DSNs, creating $dsn if it doesn't exist already

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91福利国产精品| 色视频欧美一区二区三区| 亚洲一区二区黄色| 曰韩精品一区二区| 亚洲国产wwwccc36天堂| 亚洲精品久久7777| 亚洲国产乱码最新视频 | 亚洲愉拍自拍另类高清精品| 久久午夜色播影院免费高清| 久久久精品国产免大香伊| 欧美草草影院在线视频| 久久亚洲欧美国产精品乐播| 国产欧美精品日韩区二区麻豆天美| 精品国产sm最大网站免费看| 国产日产欧美精品一区二区三区| 国产蜜臀av在线一区二区三区| 国产精品国产三级国产aⅴ入口| 亚洲三级免费观看| 午夜精品123| 国产一区二区三区免费看| 国产91综合网| 欧美亚洲日本一区| 色天使色偷偷av一区二区| 欧美系列日韩一区| 26uuu久久综合| 国产精品传媒在线| 日本伊人精品一区二区三区观看方式| 麻豆精品在线播放| 99在线热播精品免费| 欧美久久一区二区| 欧美国产精品一区| 日韩激情在线观看| 岛国精品在线观看| 日韩一区二区三免费高清| 欧美激情在线观看视频免费| 亚洲成av人片在www色猫咪| 国产黄色成人av| 欧美日韩高清不卡| 国产精品家庭影院| 久久99最新地址| 欧美中文字幕一区二区三区亚洲 | 国产在线国偷精品免费看| av激情成人网| 欧美大片日本大片免费观看| 亚洲精品v日韩精品| 国产激情视频一区二区三区欧美| 欧美日韩国产美| 国产精品国产成人国产三级| 美国一区二区三区在线播放| 91麻豆精品秘密| 国产欧美精品在线观看| 日本麻豆一区二区三区视频| 色综合 综合色| 国产蜜臀av在线一区二区三区| 蜜臀av性久久久久蜜臀av麻豆| 欧美亚洲综合另类| 中文字幕第一页久久| 国产真实乱子伦精品视频| 在线播放91灌醉迷j高跟美女| 国产精品看片你懂得| 国产宾馆实践打屁股91| 日韩视频一区二区三区| 亚洲成a人v欧美综合天堂下载 | 亚洲色图欧美偷拍| 国产成人日日夜夜| 久久久蜜臀国产一区二区| 免费xxxx性欧美18vr| 欧美日韩国产在线播放网站| 亚洲免费观看高清完整版在线观看熊| 成人一区二区三区中文字幕| 26uuu国产日韩综合| 狠狠色狠狠色综合系列| 精品乱码亚洲一区二区不卡| 精品一区二区成人精品| 日韩精品中文字幕一区| 美女尤物国产一区| 久久嫩草精品久久久久| 国产精品一区二区无线| 亚洲国产精品精华液ab| 成人一区二区三区在线观看| 中文在线免费一区三区高中清不卡| 国产在线观看一区二区| 国产日韩欧美亚洲| 99久久久国产精品| 亚洲一区二区视频在线观看| 在线观看www91| 亚洲成av人片www| 欧美一级片免费看| 国产精品自拍网站| 国产精品免费人成网站| 91电影在线观看| 日本不卡的三区四区五区| 精品日本一线二线三线不卡| 国产精品小仙女| 亚洲色图一区二区三区| 欧美日韩久久一区二区| 久久er99精品| 亚洲欧美日韩综合aⅴ视频| 在线不卡一区二区| 国产福利一区在线| 依依成人综合视频| 日韩免费福利电影在线观看| av动漫一区二区| 免费在线成人网| 国产精品青草久久| 91麻豆精品91久久久久同性| 国产精品系列在线播放| 一区二区三区欧美久久| 欧美成人高清电影在线| 91成人国产精品| 国产乱人伦精品一区二区在线观看| 亚洲美女精品一区| 久久久亚洲午夜电影| 欧美在线999| 成人开心网精品视频| 水蜜桃久久夜色精品一区的特点| 国产香蕉久久精品综合网| 欧美疯狂做受xxxx富婆| 本田岬高潮一区二区三区| 午夜视频一区二区三区| 国产精品视频观看| 欧美α欧美αv大片| 欧美性猛交xxxx乱大交退制版| 国产一区二区三区久久久| 一级中文字幕一区二区| 亚洲国产精华液网站w| 精品毛片乱码1区2区3区| 欧美日韩精品是欧美日韩精品| 国产成人免费av在线| 理论电影国产精品| 日韩av中文在线观看| 夜夜嗨av一区二区三区中文字幕| 久久一区二区三区国产精品| 这里只有精品视频在线观看| 欧美网站一区二区| av亚洲精华国产精华精| 国产麻豆精品95视频| 精品一区二区三区在线视频| 亚洲va欧美va国产va天堂影院| 亚洲日本电影在线| 国产精品麻豆视频| 国产精品久久久久久久久久免费看 | 成人午夜激情视频| 国产乱子伦视频一区二区三区| 视频一区国产视频| 午夜精品久久久久久久99水蜜桃| 洋洋成人永久网站入口| 一区二区三区欧美视频| 亚洲精品ww久久久久久p站 | 亚洲一区电影777| 亚洲久草在线视频| 一区二区三区自拍| 亚洲国产三级在线| 丝袜亚洲另类欧美综合| 婷婷国产在线综合| 日韩高清中文字幕一区| 日韩不卡在线观看日韩不卡视频| 午夜精品福利视频网站| 欧美aⅴ一区二区三区视频| 日本亚洲电影天堂| 久久精品99国产精品日本| 国产一区二区中文字幕| 国产精品一级片| 99国产一区二区三精品乱码| 91在线视频18| 欧美日韩在线播放一区| 欧美一区二区啪啪| 久久夜色精品一区| 日韩伦理电影网| 亚洲一级二级三级在线免费观看| 午夜av一区二区三区| 日韩精品1区2区3区| 精品一区二区免费看| 国产精品一区二区黑丝| 色综合视频一区二区三区高清| 欧美视频一区二| 精品国产乱码久久久久久浪潮| 欧美激情综合在线| 亚洲最大成人网4388xx| 免费看欧美美女黄的网站| 国产福利精品一区| 色激情天天射综合网| 日韩一区二区在线看片| 国产精品久久99| 天堂在线一区二区| 国产东北露脸精品视频| 欧美视频在线播放| 欧美精品一区二区在线播放 | 欧美区一区二区三区| 精品少妇一区二区三区在线播放 | 欧美精品乱人伦久久久久久| 精品久久久久久久久久久久久久久久久 | 欧美成va人片在线观看| 中文字幕制服丝袜成人av | 亚洲一区二区黄色| 国产酒店精品激情| 欧美日韩精品免费| 中文字幕巨乱亚洲| 久久精品99久久久| 欧美日韩精品一区二区三区蜜桃|