当前位置:编程学习 > CGI >>

关于odbc的一个文挡说明,奉献给大家

答案: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();
    关闭连接

--------------------------------------------------------------------------------
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 object's 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 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 actuall

上一个:动态创建图象(未定稿2)转
下一个:建立与数据库的连接

更多图片编程知识:
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,