当前位置:首页>网络学院>程序开发>CGI/Perl教程>文章内容

关于odbc的一个文挡说明

[ 来源: | 作者: | 时间:2007-07-16 | 收藏 | 推荐 ] 【


Win32::ODBC - Object

IT资讯之家 www.it55.com

-------------------------------------------------------------------------------- sflj www.it55.com kg^&fgd

Creating an ODBC Object
Your script will need to have the following line: 免费资源www.it55.com

use Win32::ODBC;
调用模块 免费资源www.it55.com

Then you will need to create a data connection to your DSN:

www.it55.com

$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 heart's content! See the description of functions below and also test.pl to see how it all works.

www.it55.com在线教程

Make sure that you close your connection when you are finished: IT资讯之家 www.it55.com

$Data->Close();
关闭连接

http://www.it55.com/

--------------------------------------------------------------------------------
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. IT资讯之家 www.it55.com

WARNING: The example code has not yet been tested. This will be fixed ASAP, but be forwarned!

www.it55.com

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)
vd;k;l www.it55.com rdfg

Connection
Returns the object's ODBC connection number.
Example:
$cnum = $db->Connection;
建立连接

www.it55.com在线教程

Close
Closes the ODBC connection for this object. It always returns undef.
Example: $db->Close();
断开连接
www.it55.com在线教程

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");

45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn

or

it55.com

$db->Sql("SELECT * FROM foo");
$db->FetchRow();
@values = $db->Data;
See also: DataHash
免费资源www.it55.com

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};

it55.com

or vd;k;l www.it55.com rdfg

$db->Sql("SELECT * FROM foo");
$db->FetchRow();
%hash = $db->DataHash;
foreach $key (sort(keys %hash)) {
print $key, '=', $hash{$key}, "\n";
}
See also: Data 免费资源www.it55.com

  IT资讯之家 www.it55.com

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 DSN's Remark: "), %rem{$db->GetDSN}, qq("\n); www.it55.com

Back to the top

www.it55.com在线教程

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);

sflj www.it55.com kg^&fgd

Back to the top

www.it55.com在线教程

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;
} 45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn

Back to the top

免费资源www.it55.com

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;

www.it55.com

Back to the top

45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn

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); vd;k;l www.it55.com rdfg

($ErrNum, $ErrText, $ErrConn) = $db->Error();

www.it55.com在线教程

Back to the top

45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn

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 there's 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 45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn

Back to the top it55.com

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); http://www.it55.com/

Back to the top www.it55.com在线教程

GetConnections
Returns an array of connection numbers for all objects.
Example:
@cnums = $db->GetConnections;

IT资讯之家 www.it55.com

Back to the top sflj www.it55.com kg^&fgd

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); www.it55.com

Back to the top it55.com

GetMaxBufSize
Returns the current maximum single field data size, in bytes.
Example:
$max = $db->GetMaxBufSize;
$db->SetMaxBufSize($needed) if ($max < $needed);
See also: SetMaxBufSize www.it55.com在线教程

Back to the top 免费资源www.it55.com

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 IT资讯之家 www.it55.com

Back to the top vd;k;l www.it55.com rdfg

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 there's 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

免费资源www.it55.com

Back to the top

http://www.it55.com/

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;

45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn

or

45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn

$db = new Win32::ODBC("dsn=FOO;UID=BAR;PWD=FUBAR");
die qq(Cannot open new ODBC\n) if ! $db; 免费资源www.it55.com

Back to the top vd;k;l www.it55.com rdfg

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

45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn

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 IT资讯之家 www.it55.com

Back to the top 45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn

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 IT资讯之家 www.it55.com

Back to the top sflj www.it55.com kg^&fgd

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). it55.com

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 IT资讯之家 www.it55.com

Back to the top IT资讯之家 www.it55.com

ShutDown
Closes the ODBC connection and print data about it. This is used only in debugging.
Example:
$db->Shutdown;
See also: Close 45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn

Back to the top

免费资源www.it55.com

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 免费资源www.it55.com

Back to the top

www.it55.com在线教程

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 45398 www.it55.com it55学习IT知识,享受IT生活 4dfkjn


(编辑:IT资讯之家 www.it55.com

返回顶部
 

网友评论

[以下评论为网友观点,不代表本站。请自觉遵守互联网相关政策法规,所有连带责任均有评论者自负。]
[不超过250字]

图片文章