电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 在线教程-> CGI
关于odbc的一个文挡说明,奉献给大家-CGI教程,CGI文档
作者:网友供稿 点击:27
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
win32::odbc - object

--------------------------------------------------------------------------------

creating an odbc object
your script will need to have the following line:

    use win32::odbc;
        调用模块

then you will need to create a data connection to your dsn:

    $data = new win32::odbc("mydsn");
    数据源的连接
you shoud check to see if $data is indeed defined otherwise there has been an error. you can now send sql queries and retrieve info to your hearts content! see the description of functions below and also test.pl to see how it all works.

make sure that you close your connection when you are finished:

    $data->close();
    关闭连接

--------------------------------------------------------------------------------
object methods
general note
all methods assume that you have the line:
    use win32::odbc;
somewhere before the method calls, and that you have an odbc object called $db which was created using some call similar to:
    $db = new win32::odbc("mydsn");
see new for more information.
also, in an effort to keep the examples short, no error checking is done on return values for any calls other than the one being exemplified. you should always check for error conditions in production code.

warning: the example code has not yet been tested. this will be fixed asap, but be forwarned!


catalog   qualifier, owner, name, type
retrieves the catalog from the current odbc object.
returns a four-element array (qualifier, owner, name, type).
note:all fieldnames are uppercase!
example:
($qualifier, $owner, $name, $type) = $db->catalog("", "", "%", "table");
从库中检索数据到下面四个变量中(qualifier, owner, name, type)


connection
returns the objects odbc connection number.
example:
$cnum = $db->connection;
建立连接

close
closes the odbc connection for this object. it always returns undef.
example:                                                $db->close();
断开连接


data
data list
retrieve data from previous fetch for a list of field names.
in a scalar context it returns all of the field values concatenated together.
in an array context, it returns an array of the values, in the order in which they were
specified.
if no field names are given, all fields are returned in an unspecified order.
example:
$db->sql("select f1, f2, f3 from foo");
$db->fetchrow();
($f1, $f2) = $db->data("f1", "f2");

or

$db->sql("select * from foo");
$db->fetchrow();
@values = $db->data;
see also: datahash


datahash
datahash list
retrieve data from previous fetch for a list of field names. returns a hash where the field name is the key. if no field names are given, all fields are returned.
example:
$db->sql("select f1, f2, f3 from foo");
$db->fetchrow();
%hash = $db->datahash("f1", "f2");
print $hash{f1};

or

$db->sql("select * from foo");
$db->fetchrow();
%hash = $db->datahash;
foreach $key (sort(keys %hash)) {
    print $key, =, $hash{$key}, "\n";
}
see also: data



datasources
returns an associative array of data sources and odbc remarks in the form of:
$arrayname{dsn} = remark
where dsn is the data source name and remark is, well, the remark.
example:
%rem = $db->datasources;
print log qq(current dsns remark: "), %rem{$db->getdsn}, qq("\n);

back to the top  

drivers
returns an associative array of drivers and their attributes in the form of:
$arrayname{driver} = attrib1;attrib2;attrib3;...
where driver is the odbc driver name and attribx are the driver-defined attributes.
example:
%attrib = $db->drivers;
print log qq($driver: $attrib{$driver}\n) foreach $driver (keys %attrib);

back to the top  

dumperror
dump to the screen details about the last error condition. this includes error number, error text and the odbc connection number that caused the error (if there is one). this is used primarily for debugging.
example:
$db = new win32::odbc("my dsn");
if (undef $db){
    win32::odbc::dumperror();
}
if ($db->sql("select * from foo")){
    $db->dumperror;
}

back to the top  

dumpdata
dump to the screen all field names and the data in all rows of the current dataset. this is used primarily for debugging.
example:
$db->sql("select * from foo");
$db->dumpdata;

back to the top  

error
returns the last recorded error in the form of an array or string (depending upon the context) containing the error number, error text and the odbc connection that caused the error (if there is one).
example:
die $db->error(), qq(\n);

($errnum, $errtext, $errconn) = $db->error();

back to the top  

fetchrow
fetches the next row of data from the previous specified sql statement. you would then call data or datahash to actually retrieve the individual elements of data. returns undef if theres an error, true otherwise.
example:
$db->sql("select * from foo");
$db->fetchrow() || die qq(fetch error: ), $db->error(), qq(\n);
$f1 = $db->data("f1");
see also: sql, data, datahash

back to the top  

fieldnames
returns a list of field names extracted from the current dataset. this is used mostly for testing/debugging. fieldnames returns the data in an array, with no guarantee of the order of the names.
example:
$db->sql("select * from foo");
$db->fetchrow();
foreach $fd ($db->fieldnames()) print qq($fd: "), $db->data($fd), qq("\n);

back to the top  

getconnections
returns an array of connection numbers for all objects.
example:
@cnums = $db->getconnections;

back to the top  

getdsn
getdsn conn
returns the dsn (data source name) or the odbcdriverconnect string for the connection conn, or the current connection if not specified.
example:
print log qq(current connection: "), $db->getdsn, qq("\n);

back to the top  

getmaxbufsize
returns the current maximum single field data size, in bytes.
example:
$max = $db->getmaxbufsize;
$db->setmaxbufsize($needed) if ($max < $needed);
see also: setmaxbufsize

back to the top  

getstmtclosetype
returns the current odbc close type setting. this is used mainly for debugging. type will be one of: sql_close, sql_drop, sql_unbind, or sql_reset_params. see setstmtclosetype for more info on what each of the types mean, and how they are used.
example:
$oldct = $db->getstmtclosetype;
$db->setstmtclosetype(sql_drop);
...
$db->setstmtclosetype($oldct);
see also: setstmtclosetype

back to the top  

moreresults
sees if more result sets are present and initializes for fetching rows from next result set. you would then call fetchrow to actually fetch the next row of the next result set. returns undef if theres an error, true otherwise.
example:
$db->sql("select * from foo\n  select * from bar");
$db->fetchrow() || die qq(fetch error: ), $db->error(), qq(\n);
$f1 = $db->data("f1");
$db->moreresults() || die qq(error checking for more result sets: ), $db->error(), qq(\n);
$db->fetchrow() || die qq(fetch error: ), $db->error(), qq(\n);
$f1 = $db->data("f1");
see also: sql, data

back to the top  

new win32::odbc(dsn)
new win32::odbc(odbcdriverconnect)
creates a new odbc object, given a dsn (data source name) or a properly formatted odbcdriverconnect string. returns the created odbc object or undef if there is an error.
example:
$dsn = "mydsn";
$db = new win32::odbc($dsn);
die qq(cannot open new odbc\n) if ! $db;

or

$db = new win32::odbc("dsn=foo;uid=bar;pwd=fubar");
die qq(cannot open new odbc\n) if ! $db;

back to the top  

rowcount
returns the number of rows that were affected by the previous sql command. note: this does not work on all odbc connections.
example:
$db->sql("select * from foo");
print dbg q(# of records: ), $db->rowcount(), qq(\n);
back to the top  

run
stmt
submit the sql statement stmt and print data about it. this is used only in debugging.
example:
$db->run("select * from foo");
see also: sql

back to the top  

setmaxbufsize
size
sets the maximum buffer size that a single field can allocate when executing a fetchrow. the default limit is 10240 bytes and the absolute maximum is set to 2147483647 bytes. this absolute maximum can be reset by recompiling the module. returns undef if successful.
example:
$newsize = 20480;
$rc = $db->setmaxbufsize($newsize);
die qq(setmaxbufsize($newsize) error: ), $db->error, qq(\n) if ! $rc;
see also: getmaxbufsize

back to the top  

setstmtclosetype
type
sets the current odbc close type setting used by the odbc manager. this is used mainly for debugging. normally, when you open a statement handle and perform a query (or whatever) the results are associated with the statement. you need to free the statement in order to execute another query. when you do this, usually the dataset (from the query) is cached. this caching action may be good for speed but could cause some memory problems if your dataset is huge. see the odbc api call sqlfreestmt(hstmt, option) for more details. (all of this is handled automatically by the win32::odbc package).

type will be one of:
sql_close - just close the statement (use caching)
sql_drop - close and drop all results (do not use caching)
sql_unbind - close and remove bindings to columns (odbc.pll does not bind vars to columns)
sql_reset_params - close and reset all of the bound parameters (such as type casting for columns; see sqlfreestmt())
example:
$oldct = $db->getstmtclosetype;
$db->setstmtclosetype(sql_drop);
...
$db->setstmtclosetype($oldct);
see also: getstmtclosetype

back to the top  

shutdown
closes the odbc connection and print data about it. this is used only in debugging.
example:
$db->shutdown;
see also: close

back to the top  

sql
stmt
executes the sql command stmt. returns undef on success, sql error code on failure.
example:
$stmt = "select * from foo";
$rc = $db->sql($stmt);
die qq(sql failed "$stmt": ), $db->error(), qq(\n) if $rc;
see also: error

back to the top  

tablelist
tablelist qualifier, owner, name, type
retrieves the list of table names from the current odbc object using catalog. if not specified, qualifier and owner default to "", name defaults to "%", and type defaults to "table". tablelist returns an array of table names. note:all fieldnames are uppercase!
example:
@tables = $db->tablelist;
see also: catalog

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·LB5000XP论坛配合SERV-U获取系统管理员权限-CGI教程,CGI文档
·CGI 版本-PHP教程,其它文章
·获取随机的由大小写字母和数字组成的八位密码-CGI教程,CGI文档
·Perl在NT下的快速简便安装方法 (转)-CGI教程,CGI文档
·实战 FastCGI(转)二-CGI教程,CGI文档
·XML和现代CGI应用程序-.NET教程,XML应用
·perl在win32平台上直接操作打印机-CGI教程,CGI文档
·实战 FastCGI(转)五(完)-CGI教程,CGI文档
·Python 快速入门(一)-CGI教程,CGI文档
·网站 PAGEVIEW 分析系统 CGI (原创)-CGI教程,CGI文档

最新文章
·顺便说说一些指示代码
·跟我学Perl(二)
·跟我学Perl(一)
·CGI教程(5)利用CGI解码FORM
·CGI教程(4)HTML 表单
·CGI教程(3)怎样发回文档给客户端
·CGI教程(2)怎样从服务器获得信息
·CGI教程(1)简介
·CGI教程(目录)
·Perl直接入门详尽指南




版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号