亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? odbc.pm

?? ARM上的如果你對底層感興趣
?? PM
?? 第 1 頁 / 共 2 頁
字號:
#           SQL_DROP
#           SQL_CLOSE
#           SQL_UNBIND
#           SQL_RESET_PARAMS
#   Returns the newly set value.
####
sub SetStmtCloseType{
    my($self, $Type, $Connection) = @_;
    if (! ref($self)){
        $Connection = $Type;
        $Type = $self;
        $self = 0;
    }
    if (! $Connection){$Connection = $self->{'connection'};}
    my(@Results) = ODBCSetStmtCloseType($Connection, $Type);
    return (processError($self, @Results))[0];
}

sub ColAttributes{
    my($self, $Type, @Field) = @_;
    my(%Results, @Results, $Results, $Attrib, $Connection, $Temp);
    if (! ref($self)){
        $Type = $Field;
        $Field = $self;
        $self = 0;
    }
    $Connection = $self->{'connection'};
    if (! scalar(@Field)){ @Field = $self->fieldnames;}
    foreach $Temp (@Field){
        @Results = ODBCColAttributes($Connection, $Temp, $Type);
        ($Attrib) = processError($self, @Results);
        if (wantarray){
            $Results{$Temp} = $Attrib;
        }else{
            $Results .= "$Temp";
        }
    }
    return wantarray? %Results:$Results;
}

sub GetInfo{
    my($self, $Type) = @_;
    my($Connection, @Results);
    if(! ref $self){
        $Type = $self;
        $self = 0;
        $Connection = 0;
    }else{
        $Connection = $self->{'connection'};
    }
    @Results = ODBCGetInfo($Connection, $Type);
    return (processError($self, @Results))[0];
}

sub GetConnectOption{
    my($self, $Type) = @_;
    my(@Results);
    if(! ref $self){
        $Type = $self;
        $self = 0;
    }
    @Results = ODBCGetConnectOption($self->{'connection'}, $Type);
    return (processError($self, @Results))[0];
}

sub SetConnectOption{
    my($self, $Type, $Value) = @_;
    if(! ref $self){
        $Value = $Type;
        $Type = $self;
        $self = 0;
    }
    my(@Results) = ODBCSetConnectOption($self->{'connection'}, $Type, $Value);
    return (processError($self, @Results))[0];
}


sub Transact{
    my($self, $Type) = @_;
    my(@Results);
    if(! ref $self){
        $Type = $self;
        $self = 0;
    }
    @Results = ODBCTransact($self->{'connection'}, $Type);
    return (processError($self, @Results))[0];
}


sub SetPos{
    my($self, @Results) = @_;
    @Results = ODBCSetPos($self->{'connection'}, @Results);
    $self->{'Dirty'} = 1;
    return (processError($self, @Results))[0];
}

sub ConfigDSN{
    my($self) = shift @_;
    my($Type, $Connection);
    if(! ref $self){
        $Type = $self;
        $Connection = 0;
        $self = 0;
    }else{
        $Type = shift @_;
        $Connection = $self->{'connection'};
    }
    my($Driver, @Attributes) = @_;
    @Results = ODBCConfigDSN($Connection, $Type, $Driver, @Attributes);
    return (processError($self, @Results))[0];
}


sub Version{
	my($self, @Packages) = @_;
    my($Temp, @Results);
	if (! ref($self)){
		push(@Packages, $self);
	}
	my($ExtName, $ExtVersion) = Info();
	if (! scalar(@Packages)){
		@Packages = ("ODBC.PM", "ODBC.PLL");
	}
	foreach $Temp (@Packages){
		if ($Temp =~ /pll/i){
            push(@Results, "ODBC.PM:$Win32::ODBC::Version");
		}elsif ($Temp =~ /pm/i){
            push(@Results, "ODBC.PLL:$ExtVersion");
		}
	}
    return @Results;
}


sub SetStmtOption{
    my($self, $Option, $Value) = @_;
    if(! ref $self){
        $Value = $Option;
        $Option = $self;
        $self = 0;
    }
    my(@Results) = ODBCSetStmtOption($self->{'connection'}, $Option, $Value);
    return (processError($self, @Results))[0];
}

sub GetStmtOption{
    my($self, $Type) = @_;
    if(! ref $self){
        $Type = $self;
        $self = 0;
    }
    my(@Results) = ODBCGetStmtOption($self->{'connection'}, $Type);
    return (processError($self, @Results))[0];
}

sub GetFunctions{
    my($self, @Results)=@_;
    @Results = ODBCGetFunctions($self->{'connection'}, @Results);
    return (processError($self, @Results));
}

sub DropCursor{
    my($self) = @_;
    my(@Results) = ODBCDropCursor($self->{'connection'});
    return (processError($self, @Results))[0];
}

sub SetCursorName{
    my($self, $Name) = @_;
    my(@Results) = ODBCSetCursorName($self->{'connection'}, $Name);
    return (processError($self, @Results))[0];
}

sub GetCursorName{
    my($self) = @_;
    my(@Results) = ODBCGetCursorName($self->{'connection'});
    return (processError($self, @Results))[0];
}

sub GetSQLState{
    my($self) = @_;
    my(@Results) = ODBCGetSQLState($self->{'connection'});
    return (processError($self, @Results))[0];
}


# ----------- R e s u l t   P r o c e s s i n g   F u n c t i o n s ----------
####
#   Generic processing of data into associative arrays
####
sub updateResults{
    my ($self, $Error, @Results) = @_;

    undef %{$self->{'field'}};

    ClearError($self);
    if ($Error){
        SetError($self, $Results[0], $Results[1]);
        return ($Error);
    }

    @{$self->{'fnames'}} = @Results;

    foreach (0..$#{$self->{'fnames'}}){
        s/ +$//;
        $self->{'field'}->{${$self->{'fnames'}}[$_]} = $_;
    }
    return undef;
}

# ----------------------------------------------------------------------------
# ----------------- D e b u g g i n g   F u n c t i o n s --------------------

sub Debug{
    my($self, $iDebug, $File) = @_;
    my(@Results);
    if (! ref($self)){
        if (defined $self){
            $File = $iDebug;
            $iDebug = $self;
        }
        $Connection = 0;
        $self = 0;
    }else{
        $Connection = $self->{'connection'};
    }
    push(@Results, ($Connection, $iDebug));
    push(@Results, $File) if ($File ne "");
    @Results = ODBCDebug(@Results);
    return (processError($self, @Results))[0];
}

####
#   Prints out the current dataset (used mostly for testing)
####
sub DumpData {
    my($self) = @_; my($f, $goo);

        #   Changed by JOC 06-Apr-96
        #   print "\nDumping Data for connection: $conn->{'connection'}\n";
    print "\nDumping Data for connection: $self->{'connection'}\n";
    print "Error: \"";
    print $self->Error();
    print "\"\n";
    if (! $self->Error()){
       foreach $f ($self->FieldNames){
            print $f . " ";
            $goo .= "-" x length($f);
            $goo .= " ";
        }
        print "\n$goo\n";
        while ($self->FetchRow()){
            foreach $f ($self->FieldNames){
                print $self->data($f) . " ";
            }
            print "\n";
        }
    }
}

sub DumpError{
    my($self) = @_;
    my($ErrNum, $ErrText, $ErrConn);
    my($Temp);

    print "\n---------- Error Report: ----------\n";
    if (ref $self){
        ($ErrNum, $ErrText, $ErrConn) = $self->Error();
        ($Temp = $self->GetDSN()) =~ s/.*DSN=(.*?);.*/$1/i;
        print "Errors for \"$Temp\" on connection " . $self->{'connection'} . ":\n";
    }else{
        ($ErrNum, $ErrText, $ErrConn) = Error();
        print "Errors for the package:\n";
    }

    print "Connection Number: $ErrConn\nError number: $ErrNum\nError message: \"$ErrText\"\n";
    print "-----------------------------------\n";

}

####
#   Submit an SQL statement and print data about it (used mostly for testing)
####
sub Run{
    my($self, $Sql) = @_;

    print "\nExcecuting connection $self->{'connection'}\nsql statement: \"$Sql\"\n";
    $self->sql($Sql);
    print "Error: \"";
    print $self->error;
    print "\"\n";
    print "--------------------\n\n";
}

# ----------------------------------------------------------------------------
# ----------- E r r o r   P r o c e s s i n g   F u n c t i o n s ------------

####
#   Process Errors returned from a call to ODBCxxxx().
#   It is assumed that the Win32::ODBC function returned the following structure:
#      ($ErrorNumber, $ResultsText, ...)
#           $ErrorNumber....0 = No Error
#                           >0 = Error Number
#           $ResultsText.....if no error then this is the first Results element.
#                           if error then this is the error text.
####
sub processError{
    my($self, $Error, @Results) = @_;
    if ($Error){
        SetError($self, $Results[0], $Results[1]);
        undef @Results;
    }
    return @Results;
}

####
#   Return the last recorded error message
####
sub error{
    return (Error(@_));
}

sub Error{
    my($self) = @_;
    if(ref($self)){
        if($self->{'ErrNum'}){
            my($State) = ODBCGetSQLState($self->{'connection'});
            return (wantarray)? ($self->{'ErrNum'}, $self->{'ErrText'}, $self->{'connection'}, $State) :"[$self->{'ErrNum'}] [$self->{'connection'}] [$State] \"$self->{'ErrText'}\"";
        }
    }elsif ($ErrNum){
        return (wantarray)? ($ErrNum, $ErrText, $ErrConn):"[$ErrNum] [$ErrConn] \"$ErrText\"";
    }
    return undef
}

####
#   SetError:
#       Assume that if $self is not a reference then it is just a placeholder
#       and should be ignored.
####
sub SetError{
    my($self, $Num, $Text, $Conn) = @_;
    if (ref $self){
        $self->{'ErrNum'} = $Num;
        $self->{'ErrText'} = $Text;
        $Conn = $self->{'connection'} if ! $Conn;
    }
    $ErrNum = $Num;
    $ErrText = $Text;

        ####
        #   Test Section Begin
        ####
#    $! = ($Num, $Text);
        ####
        #   Test Section End
        ####

    $ErrConn = $Conn;
}

sub ClearError{
    my($self, $Num, $Text) = @_;
    if (ref $self){
        undef $self->{'ErrNum'};
        undef $self->{'ErrText'};
    }else{
        undef $ErrConn;
        undef $ErrNum;
        undef $ErrText;
    }
    ODBCCleanError();
    return 1;
}


sub GetError{
    my($self, $Connection) = @_;
    my(@Results);
    if (! ref($self)){
        $Connection = $self;
        $self = 0;
    }else{
        if (! defined($Connection)){
            $Connection = $self->{'connection'};
        }
    }

    @Results = ODBCGetError($Connection);
    return @Results;
}




# ----------------------------------------------------------------------------
# ------------------ A U T O L O A D   F U N C T I O N -----------------------

sub AUTOLOAD {
    # This AUTOLOAD is used to 'autoload' constants from the constant()
    # XS function.  If a constant is not found then control is passed
    # to the AUTOLOAD in AutoLoader.

    my($constname);
    ($constname = $AUTOLOAD) =~ s/.*:://;
    #reset $! to zero to reset any current errors.
    $!=0;
    $val = constant($constname, @_ ? $_[0] : 0);

    if ($! != 0) {
    if ($! =~ /Invalid/) {
        $AutoLoader::AUTOLOAD = $AUTOLOAD;
        goto &AutoLoader::AUTOLOAD;
    }
    else {

            # Added by JOC 06-APR-96
            # $pack = 0;
        $pack = 0;
        ($pack,$file,$line) = caller;
            print "Your vendor has not defined Win32::ODBC macro $constname, used in $file at line $line.";
    }
    }
    eval "sub $AUTOLOAD { $val }";
    goto &$AUTOLOAD;
}


    #   --------------------------------------------------------------
    #
    #
    #   Make sure that we shutdown ODBC and free memory even if we are
    #   using perlis.dll on Win32 platform!
END{
#    ODBCShutDown() unless $CacheConnection;
}


bootstrap Win32::ODBC;

# Preloaded methods go here.

# Autoload methods go after __END__, and are processed by the autosplit program.

1;
__END__



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美国一区二区三区在线播放| 国产拍揄自揄精品视频麻豆| 久久午夜免费电影| 亚洲国产成人一区二区三区| 亚洲精品国产一区二区精华液 | 不卡的av在线| 91国偷自产一区二区三区观看| 69p69国产精品| 国产精品欧美久久久久无广告| 亚洲一二三四在线| 国产一区中文字幕| 91成人免费在线| 欧美变态tickling挠脚心| 136国产福利精品导航| 欧美aⅴ一区二区三区视频| 成人99免费视频| 日韩女优av电影| 亚洲乱码日产精品bd| 精久久久久久久久久久| 日本高清不卡视频| 国产偷国产偷亚洲高清人白洁| 亚洲影院理伦片| 国产成人小视频| 91精品国产综合久久久久| 自拍偷自拍亚洲精品播放| 老司机精品视频导航| 色悠悠亚洲一区二区| 精品国产乱码久久久久久1区2区| 夜夜嗨av一区二区三区网页| 国内精品免费在线观看| 精品视频在线免费看| 国产精品国产精品国产专区不蜜| 秋霞电影一区二区| 色av综合在线| 欧美经典一区二区三区| 蜜臀av亚洲一区中文字幕| 色8久久人人97超碰香蕉987| 久久精品欧美日韩精品| 日韩精品欧美精品| 91福利在线看| 中文字幕亚洲一区二区av在线 | 国产欧美精品一区二区色综合 | 久久综合九色综合欧美亚洲| 亚洲国产va精品久久久不卡综合| 成人av在线一区二区| 精品理论电影在线观看| 五月婷婷另类国产| 一本久道中文字幕精品亚洲嫩| 国产校园另类小说区| 久久精品免费看| 欧美久久久久久久久久| 亚洲一区二区中文在线| 91麻豆精品在线观看| 国产蜜臀av在线一区二区三区| 蓝色福利精品导航| 日韩免费视频一区| 日韩国产欧美在线观看| 欧美日韩精品系列| 一区二区高清免费观看影视大全| 91视视频在线观看入口直接观看www | 中文字幕+乱码+中文字幕一区| 精品综合免费视频观看| 欧美一级专区免费大片| 日本vs亚洲vs韩国一区三区| 欧美日韩黄色影视| 婷婷丁香激情综合| 56国语精品自产拍在线观看| 亚洲第一二三四区| 欧美视频一区二区| 亚洲成年人影院| 欧美精品一二三区| 日本不卡中文字幕| 欧美一级淫片007| 经典三级视频一区| 国产亚洲欧美在线| 大白屁股一区二区视频| 中文字幕视频一区二区三区久| www.欧美.com| 一区二区三区国产| 欧美高清性hdvideosex| 秋霞午夜鲁丝一区二区老狼| 欧美大白屁股肥臀xxxxxx| 麻豆精品新av中文字幕| 久久午夜老司机| 成人app网站| 一区二区三区丝袜| 777xxx欧美| 国内精品久久久久影院色| 国产欧美日韩另类视频免费观看| av欧美精品.com| 亚洲在线观看免费| 91精品黄色片免费大全| 久久99国产精品免费网站| 久久精品一区二区三区四区| 99久久99久久精品免费观看| 亚洲自拍与偷拍| 91精品欧美综合在线观看最新| 久久成人免费电影| 中文一区二区在线观看| 91黄色小视频| 久久99在线观看| 国产精品美女久久久久久久网站| 在线看日韩精品电影| 免费精品99久久国产综合精品| 久久久精品国产免大香伊| 成人18视频日本| 亚洲成人av在线电影| 亚洲精品一区二区在线观看| 成人91在线观看| 日韩国产在线观看| 国产欧美精品一区二区色综合朱莉| 日本韩国一区二区三区视频| 日本欧美一区二区三区乱码 | 99久久久精品免费观看国产蜜| 亚洲成在人线在线播放| 精品国产不卡一区二区三区| 91视频国产资源| 免费成人在线观看| 中文字幕一区二区三区四区不卡| 欧美日韩专区在线| 成人一区二区三区视频| 视频在线观看91| 国产清纯在线一区二区www| 欧美午夜免费电影| 国产另类ts人妖一区二区| 亚洲一区在线观看视频| 久久精品一区二区三区不卡| 欧美性做爰猛烈叫床潮| 国产精品69久久久久水密桃| 亚洲一卡二卡三卡四卡无卡久久| 精品久久久久久久久久久久久久久| 91免费观看视频| 韩国三级中文字幕hd久久精品| 一区二区三区在线视频免费| 欧美成人乱码一区二区三区| 欧美在线观看视频一区二区三区| 久久精品国产色蜜蜜麻豆| 伊人色综合久久天天| 久久综合九色欧美综合狠狠 | 麻豆91精品91久久久的内涵| 亚洲日穴在线视频| 久久综合狠狠综合久久综合88| 欧美日韩aaa| 91麻豆国产福利在线观看| 国产一区二区三区香蕉| 亚洲aⅴ怡春院| 国产精品传媒入口麻豆| 精品久久久久99| 欧美老年两性高潮| 91猫先生在线| 成人午夜在线视频| 精品午夜久久福利影院| 日本亚洲天堂网| 亚洲高清在线视频| 亚洲欧美色一区| 中文字幕免费不卡| 国产欧美精品一区二区色综合朱莉 | 一区在线中文字幕| 久久久精品国产免大香伊| 欧美成人精品高清在线播放| 欧美日韩亚洲综合在线| 91福利精品视频| 成人app网站| 国产成人免费在线| 国产在线播放一区| 狠狠色丁香婷综合久久| 麻豆精品在线视频| 美女国产一区二区三区| 日韩av一区二区三区四区| 亚洲一区二区三区中文字幕在线| 亚洲色图欧美激情| 中文字幕五月欧美| 中文字幕字幕中文在线中不卡视频| 欧美国产禁国产网站cc| 欧美国产成人在线| 国产精品色哟哟| 一区在线观看视频| 亚洲男人电影天堂| 一区二区三区蜜桃网| 亚洲男人的天堂在线aⅴ视频| 亚洲私人黄色宅男| 亚洲男帅同性gay1069| 一区二区三区在线观看动漫 | 8x8x8国产精品| 91麻豆精品久久久久蜜臀| 欧美福利电影网| 91精品国产综合久久久久久漫画| 欧美一区二区三区婷婷月色| 91精品国产综合久久精品 | 国产精品一区二区久久不卡| 国产精品一区不卡| 成人精品一区二区三区中文字幕| 成人a区在线观看| 91一区二区三区在线观看| 91丨porny丨国产入口| 欧美私人免费视频| 91精品婷婷国产综合久久竹菊| 精品日产卡一卡二卡麻豆| 国产日韩精品一区| 国产精品国产三级国产普通话蜜臀|