乘风原创程序

  • Win32::ODBC Object Document
  • 2005/2/16 11:46:02
  • 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
    ot