分享
 
 
 

Win32::ODBC Object Document

王朝perl·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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

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

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

---

Back to the top

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!

Methods

Back to the top

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

Back to the top

Connection

Returns the object's ODBC connection number.

Example:

$cnum = $db->Connection;

Back to the top

Close

Closes the ODBC connection for this object. It always returns undef.

Example:

$db->Close();

Back to the top

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

Back to the top

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

Back to the top

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

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

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

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

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

---

Back to the top

Examples

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

---

This page maintined by Joe Casadonte. Please let me if something is wrong

or does not make sense. Send these or other comments to: joc@netaxs.com.

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

---

Win32::ODBC Object Documentation Page.

Copyright ?Dave Roth and Joseph L. Casadonte Jr. 1996. All rights reserved.

Courtesy of Roth Consulting.

Last updated 2001.09.13

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有