Â¥Ö÷: ownadidas

Sybaseѧϰ±Ê¼Ç

[¸´ÖÆÁ´½Ó]
ÂÛ̳»ÕÕÂ:
1
¿ª·¢°å¿éÿÈÕ·¢ÌùÖ®ÐÇ
ÈÕÆÚ:2007-05-02 01:02:35
11#
 Â¥Ö÷| ·¢±íÓÚ 2007-7-18 22:16 | Ö»¿´¸Ã×÷Õß
ÐÂÔö¼Óbookauthor×ֶΣ¬ÀàÐÍΪnvarchar(10)£¬ÓÉÓÚÔö¼Ó¸Ã×Ö¶Î֮ǰ±íÖÐÒÑÓÐÊý¾Ý£¬Îª·ÀÖ¹³ö´íÐëÑ¡ÖÐAllow Nulls£¬¼´ÔÊÐí¸Ã×Ö¶ÎΪ¿Õ¡£ÐÞ¸ÄÖ®ºó£¬ÔÚInteractive SQLÖиüÐÂbook±íÖеÄÊý¾Ý£º
    update book set bookauthor = '0000000001'
ÕâʱÔٴβéѯÊý¾Ý£º
    select bookcode, bookname, authorname from book, author where bookauthor *= authorcode
¾Í¿´µ½ÆÚ´ýÒѾõĽá¹ûÁË¡£
    Èç¹ûÏëɾµô±í£¬Ö»ÒªÑ¡ÖÐbook£¬ÓÒ¼ü£¬µã»÷Delete£¬»òÕßÔÚInteractive SQL ÖÐÖ´ÐÐÃüÁ
    drop table dbo.book
¼´¿É¡£
4£®´´½¨ÊÓͼ
    ÊÓͼÊÇÐéÄâµÄ±í£¬ÆäÌØµãÊDzÙ×÷¼òµ¥¡¢Ê¹Óð²È«¡£
    ÇëÔÚSybase CentralµÄFoldersÖÐÕÒµ½zhengTest->Views²¢Ñ¡ÖУ¬È»ºóÔÚDetailsÖÐË«»÷¡°Add View(Wizard)¡±£¬´ò¿ª¡°Add Trigger¡±Ïòµ¼¡£ÔÚµÚÒ»¸ö½çÃæÖÐÊäÈëÊÓͼÃûv_book£¬µã»÷Next½øÈëÏÂÒ»¸ö½çÃæ¡£

o_11.jpg (59.33 KB, ÏÂÔØ´ÎÊý: 13)

o_11.jpg

ʹÓõÀ¾ß ¾Ù±¨

»Ø¸´
ÂÛ̳»ÕÕÂ:
1
¿ª·¢°å¿éÿÈÕ·¢ÌùÖ®ÐÇ
ÈÕÆÚ:2007-05-02 01:02:35
12#
 Â¥Ö÷| ·¢±íÓÚ 2007-7-18 22:17 | Ö»¿´¸Ã×÷Õß
Õâ¸ö½çÃæÊÇÓÃÀ´±àд´úÂëµÄ£¬³ý¿ÉÒÔÔÚÎı¾ÓòÖбàдÍ⣬»¹ÌṩÓС°SQL Editor¡±ºÍ¡°Load¡±Á½¸ö°´Å¥£¬Ç°Õßµã»÷ºó»áµ÷³öÒ»¸öSybase×Ô´øµÄ±à¼­Æ÷£¬ÏÂÃæÔڱ༭Æ÷Öбàд´úÂëÈçÏ£º
    CREATE VIEW dbo.v_book
    AS select bookcode, bookname, authorname
        from book, author
        where bookauthor *= authorcode
È»ºóµã»÷¡°Save view and close¡±»Øµ½¸Õ²ÅµÄ½çÃæ£»ºóÕßÓÃÓÚ¼ÓÔØÒѾ­Íê³ÉµÄSQLÓï¾ä£¬ÕâÀﲻʹÓᣵã»÷Finish°´Å¥£¬SybaseÌáʾÊÓͼv_bookÒÑ´æÔÚ£¬ÒòΪ¸Õ²ÅÔڱ༭Æ÷Öеã»÷µÄÊÇ¡°Save view and close¡±£¬¼´±£´æÊÓͼ²¢¹Ø±Õ¡£´Ëʱµã»÷OK£¬È»ºóµã»÷Cancel¼´¿É¡£ÀàËÆµÄ½çÃæÔÚºóÃæ±àд´æ´¢¹ý³ÌºÍ´¥·¢Æ÷µÄʱºò»¹»áÓöµ½¡£
    ÏÂÃæÑ¡ÖÐÊÓͼv_book£¬ÓÒ¼ü£¬µã»÷¡°View Data in Interactive SQL¡±£¬¾Í¿ÉÒÔÔÚInteractive SQLÖÐʹÓÃv_bookÀ´²éѯÊý¾ÝÁË¡£
    Èç¹ûÏëɾµôÊÓͼ£¬Ö»ÒªÑ¡ÖÐv_book£¬ÓÒ¼ü£¬µã»÷Delete£¬»òÕßÔÚInteractive SQL ÖÐÖ´ÐÐÃüÁ
    drop view dbo.v_book
¼´¿É¡£
5£®´´½¨´æ´¢¹ý³Ì
    ´æ´¢¹ý³ÌÊÇÒ»×é´æ´¢ÔÚÊý¾Ý¿â·þÎñÆ÷¶ÎÖ´ÐÐÌØ¶¨²Ù×÷µÄSQLÓï¾ä£¬¾ßÓд´½¨Ê±±àÒë¡¢¿ÉÖØ¸´Ê¹Óᢰ²È«ÐԸߵÈÌØµã¡£

    ×î¼òµ¥µÄ´æ´¢¹ý³Ì£¨²éѯ£©£º
    ÔÚSybase CentralµÄFoldersÖÐÕÒµ½zhengTest->Stored Procedures²¢Ñ¡ÖУ¬È»ºóÔÚDetailsÖÐË«»÷¡°Add Procedures(Wizard)¡±£¬´ò¿ª¡°Add Stored Procedure¡±Ïòµ¼¡£ÔÚµÚÒ»¸ö½çÃæÖÐÌîд´æ´¢¹ý³ÌÃû³Æ£¬ÀýÈçsimple_query£¬µã»÷Next¡£ÔÚ½ÓÏÂÀ´µÄÁ½¸ö½çÃæÖв»±Ø½øÐÐÈκβÙ×÷£¬Ö±½Óµã»÷Next¡£ÔÚµÚËĸö½çÃæÖÐÊäÈë´úÂ룺
    CREATE PROCEDURE dbo.simple_query
    AS select bookcode, bookname, authorname
        from book, author
        where bookauthor *= authorcode
µã»÷Finish¡£ÖÁ´Ë£¬´æ´¢¹ý³Ì´´½¨Íê±Ï¡£
    Õâ¸ö´æ´¢¹ý³Ì×îΪ¼òµ¥£¬¼´Ã»ÓвÎÊý£¬Ò²Ã»Óзµ»ØÖµ£¬¸üûÓÐÈκÎÂß¼­´¦Àí¡£
ÏÂÃæÑ¡Öд洢¹ý³Ìsimple_query£¬ÓÒ¼ü£¬µã»÷¡°Execute with Interactive SQL¡±£¬ÔÚInteractive SQLÖлáÉú³ÉÒ»ÌõÓï¾ä¡°exec dbo.simple_query¡±£¬ÆäÖÐexecȫƴΪexecute£¬±íʾִÐд洢¹ý³Ì¡£Ö´Ðк󣬻᷵»ØÒ»¸ö½á¹û¼¯£¬¼´SQLÓï¾äµÄÖ´Ðнá¹û¡£

    ÏÂÃæÀ´¿´Ò»¸öÄÚÈÝÏà¶ÔÍêÕûµÄ´æ´¢¹ý³ÌÀý×Ó£º
    CREATE PROCEDURE dbo.simple_demo
    (
        @i_mesg nvarchar(100) = 'Y',            --ÊäÈë²ÎÊý£¬ÉèÖÃĬÈÏֵΪ'Y'
        @o_mesg nvarchar(100) output       --Êä³ö²ÎÊý
    )
    AS
    BEGIN
        if @i_mesg = 'Y'    --Âß¼­´¦Àí
        begin
            select @o_mesg = 'ÔËÐÐÕý³££¡'    --ÔÚSybaseÖÐÐèҪʹÓÃselectÓï¾äΪ±äÁ¿¸³Öµ
            return 0        --·µ»ØÖµ
        end

        select @o_mesg = 'ÔËÐÐÒì³££¡'
        return -1           --·µ»ØÖµ
    END
Õâ¸ö´æ´¢¹ý³ÌËäȻûÓе÷ÓÃÊý¾Ý±í£¬µ«´øÓÐÊäÈë²ÎÊý¡¢Êä³ö²ÎÊý¡¢Âß¼­´¦ÀíºÍ·µ»ØÖµ£¬Òò´ËÄÚÈÝÏà¶ÔÍêÕû¡£ÕâÀïÇë×¢Ò⣬·µ»ØÖµÖ»ÄÜÊÇÕûÊý£¬¶øÊä³ö²ÎÊýÒ²¿ÉÒÔÓÃÀ´½«Öµ´«Èë²¢ÉèÖÃĬÈÏÖµ¡£
ÏÂÃæÔÚInteractive SQLÖÐÖ´ÐÐÒÔÏ´úÂ룺
    declare @o_mesg nvarchar(100),      --¶¨Òå±äÁ¿
                   @ret int
    exec @ret = dbo.simple_demo 'N', @o_mesg output     --Ö´Ðд洢¹ý³Ì£¬×¢Ò⣬Êä³ö²ÎÊý±ØÐë±êÒÔoutput£¬·ñÔò²»»áÊä³öÈκÎÖµ
    print '%1!--------%2!', @ret, @o_mesg               --Êä³ö½á¹û
°´F5¼üÖ´ÐУ¬Êä³ö½á¹û£º-1--------ÔËÐÐÒì³££¡
    ÏÂÃæ½«Õâ¶Î´úÂëдµ½´æ´¢¹ý³Ìµ±ÖУº
    CREATE PROCEDURE dbo.simple_call
    AS
    BEGIN
        declare @o_mesg nvarchar(100),
                       @ret int
        exec @ret = dbo.simple_demo 'N', @o_mesg output
        print '%1!--------%2!', @ret, @o_mesg
    END
ÕâÊÇÒ»¸ö´æ´¢¹ý³Ìµ÷Óô洢¹ý³ÌµÄÀý×ÓÁË¡£

    ÏÂÃæÔÙн¨Ò»¸ösimple_execute´æ´¢¹ý³Ì£¬´úÂëÈçÏ£º
    CREATE PROCEDURE dbo.simple_execute
    AS
    BEGIN
        execute ('select * from v_book')
    END
Õâ¸ö´æ´¢¹ý³Ìº¬ÓÐÁ½¸öÄÚÈÝ£ºÒ»¸öSQLÓï¾äµÄ¶¯Ì¬Ö´ÐУ¬¼´SybaseÖÐÔÊÐí½«SQLÓï¾ä´¦Àí³ÉÒ»¸ö×Ö·û´®»ò×Ö·û´®±äÁ¿À´Ö´ÐУ»Ò»¸öÊǶÔÊÓͼµÄ·ÃÎÊ¡£

    ÏÂÃæÔÙ¿´¼¸¸ö´æ´¢¹ý³ÌµÄÀý×Ó¡£
    ͨ¹ýÓαê¶ÁÈ¡Êý¾ÝʾÀý£º
CREATE PROCEDURE dbo.p_query_list
AS
BEGIN
    declare @bc nvarchar(10)
                 ,@bn nvarchar(50)
                 ,@an nvarchar(20)
    --¶¨ÒåÓαê
    declare book_curs cursor for
    select bookcode, bookname, authorname
        from book, author
        where bookauthor *= authorcode
        order by bookcode

    open book_curs --´ò¿ªÓαê

    --Ñ­»·Óαê¶ÁÈ¡Êý¾Ý
    fetch book_curs into @bc, @bn, @an
    while (@@sqlstatus = 0)
    begin
        print '±àºÅ£º%1!|Ãû³Æ£º%2!|×÷Õߣº%3!', @bc, @bn, @an
        fetch book_curs into @bc, @bn, @an
    end

    close book_curs --¹Ø±ÕÓαê
    deallocate cursor book_curs --ÊÍ·ÅÓαê
END

    ͨ¹ý±äÁ¿¶ÁÈ¡Êý¾ÝʾÀý£º
CREATE PROCEDURE dbo.p_query_detail
@query      nvarchar(10)
AS
BEGIN
    declare @bookcode   nvarchar(10),
                  @bookname   nvarchar(50),
                  @authorname nvarchar(20)
    /* topÓÃÀ´Ö¸¶¨È¡µÃ½á¹û¼¯µÄǰnÌõÊý¾Ý£¬ÕâÀïʹÓÃtop 1¼´±íʾȡµÃ½á¹û¼¯µÄµÚÒ»Ìõ¼Ç¼£¬·ñÔòµ±½á¹û¼¯ÖÐÓжàÌõ¼Ç¼ʱ£¬Ö»ÓÐ×îºóÒ»Ìõ¼Ç¼µÄÖµ²Å»á±»¸³Öµ¸ø±äÁ¿ */
    select top 1 @bookcode = bookcode, @bookname = bookname, @authorname = authorname from v_book where bookcode = @query

    print '±àºÅ£º%1!|Ãû³Æ£º%2!|×÷Õߣº%3!', @bookcode, @bookname, @authorname
END
Ö´ÐУºÔÚSybase CentralÖÐÑ¡ÖÐp_query_detail£¬ÓÒ¼ü£¬µã»÷¡°Execute with Interactive SQL¡±£¬ÓÉÓÚp_query_detailÓÐÒ»¸öÊäÈë²ÎÊý£¬Òò´ËCentral»áµ¯³öÒ»¸öCall´°¿Ú£º

o_12.jpg (23.11 KB, ÏÂÔØ´ÎÊý: 14)

o_12.jpg

ʹÓõÀ¾ß ¾Ù±¨

»Ø¸´
ÂÛ̳»ÕÕÂ:
1
¿ª·¢°å¿éÿÈÕ·¢ÌùÖ®ÐÇ
ÈÕÆÚ:2007-05-02 01:02:35
13#
 Â¥Ö÷| ·¢±íÓÚ 2007-7-18 22:17 | Ö»¿´¸Ã×÷Õß
ÔÚ´°¿ÚÖÐÌîֵʱһ¶¨Òª×¢Ò⣬ÓÉÓÚÊý¾ÝÀàÐÍΪnvarchar(10)£¬Îª×Ö·û´®£¬Òò´ËÒ»¶¨ÒªÔÚÖµµÄÁ½±ß¼ÓÉϵ¥ÒýºÅ¡°¡¯¡±¡£È»ºóµã»÷OK£¬ÔÚInteractive SQLÖа´F5¼üÖ´Ðиô洢¹ý³Ì¡£

    ʹÓô洢¹ý³Ì²åÈëÊý¾ÝʾÀý£º
CREATE PROCEDURE dbo.p_insert
@bookname   nvarchar(50),
@bookauthor nvarchar(10),
@mesg       nvarchar(200) = 'ok' output
AS
BEGIN
    declare @bookcode nvarchar(10)

    --ʹÓÃÔ¡¢ÈÕ¡¢Ê±¡¢·Ö¡¢Ãë×é³Ébookcode
    select @bookcode = convert(nvarchar(10), datepart(mm,getdate())*100000000 + datepart(dd,getdate())*1000000 + datepart(hh,getdate())*10000 + datepart(mi,getdate())*100 + datepart(ss,getdate()))
   
    --²åÈëÊý¾Ýµ½book±í
    insert into book (bookcode, bookname, bookauthor) values (@bookcode, @bookname, @bookauthor)
    if @@error <> 0 --Òì³£´¦Àí
    begin
        select @mesg = 'ÐÂÔöÊý¾ÝÒì³££¡' + convert(nvarchar(3), @@error)
        rollback    --ÊÂÎñ»Ø¹ö
        return -1
    end

    commit  --ÊÂÎñÌá½»
    return 0
END
Ö´ÐУºÔÚInteractive SQLÖг¢ÊÔÖ´ÐÐÒÔÏ´úÂëµ÷ÓÃp_insert´æ´¢¹ý³Ì£º
    declare @mesg nvarchar(200),
                   @flag int
    exec @flag = p_insert 'NUnitѧϰ±Ê¼Ç', '0000000001', @mesg output
    if @flag <> 0
    begin
        print @mesg
    end
    else
    begin
        print '³ÌÐòÔËÐÐÕý³££¡'
    end
    go

    ʹÓô洢¹ý³ÌÐÞ¸ÄÊý¾ÝʾÀý£º
CREATE PROCEDURE dbo.p_update
@bookcode   nvarchar(10),
@bookname   nvarchar(50),
@bookauthor nvarchar(10)
AS
BEGIN
    update book set bookname = @bookname, bookauthor = @bookauthor where bookcode = @bookcode
END

    ʹÓô洢¹ý³Ìɾ³ýÊý¾ÝʾÀý£º
CREATE PROCEDURE dbo.p_delete
@bookcode nvarchar(10)
AS
BEGIN
    delete book where bookcode = @bookcode
END

    Èç¹ûÏëɾµô´æ´¢¹ý³Ì£¬Ö»ÒªÑ¡ÖÐsimple_query£¬ÓÒ¼ü£¬µã»÷Delete£¬»òÕßÔÚInteractive SQL ÖÐÖ´ÐÐÃüÁ
    drop procedure dbo.simple_query
¼´¿É¡£
6£®´´½¨´¥·¢Æ÷
    ´¥·¢Æ÷ÊÇÒòijһÐÐΪ¶ø×Ô¶¯×ö³ö·´Ó¦²¢½øÐÐÌØ¶¨²Ù×÷µÄÒ»×éSQLÓï¾ä£¬¿ÉÒÔÀí½âΪ±íµÄʼþ¡£ÀýÈçÔÚ¶Ô±í½øÐвåÈë¡¢Ð޸Ļòɾ³ýÊý¾ÝµÈ²Ù×÷ʱ£¬¶¼»áµ¼Ö´¥·¢Æ÷±»´¥·¢¡£ÕâÀïÎһᴴ½¨Èý¸ö´¥·¢Æ÷£¬·Ö±ð¶ÔÓ¦book±íµÄ²åÈë¡¢Ð޸ĺÍɾ³ý²Ù×÷¡£

    insert´¥·¢Æ÷£º
    ÔÚSybase CentralµÄFoldersÖÐÕÒµ½zhengTest->User Tables->book->Triggers²¢Ñ¡ÖУ¬È»ºóÔÚDetailsÖÐË«»÷¡°Add Trigger(Wizard)¡±£¬´ò¿ª¡°Add Trigger¡±Ïòµ¼¡£ÔÚµÚÒ»¸ö½çÃæÖÐÌîд´¥·¢Æ÷Ãû³Æ£¬ÀýÈçt_insert£¬µã»÷Next£»ÔÚµÚ¶þ¸ö½çÃæÖÐÑ¡ÔñInsert£¬µã»÷Next£»ÔÚµÚÈý¸ö½çÃæÖÐÊäÈë´úÂ룺
CREATE TRIGGER dbo.t_insert ON dbo.book
    For INSERT AS
BEGIN
    declare @bookcode   nvarchar(10),
                   @bookname   nvarchar(50),
                   @bookauthor nvarchar(20)
    select @bookcode = bookcode, @bookname = bookname, @bookauthor = bookauthor from inserted

    print '±àºÅ£º%1!|Ãû³Æ£º%2!|×÷Õߣº%3!', @bookcode, @bookname, @bookauthor
END
µã»÷Finish¡£ÖÁ´Ë£¬insert´¥·¢Æ÷´´½¨Íê±Ï¡£
    ´¥·¢Æ÷ÆäʵҲ¿ÉÒÔÈÏΪÊÇÒ»ÖÖ´æ´¢¹ý³Ì£¬¾ÍÏñÎÒÃÇÔÚVB¡¢VC¡¢Delphi¡¢SwingµÈ¿ª·¢ÖÐдµÄʼþ´¦Àí·½·¨Ò»Ñù£¬Ö»²»¹ýÕâ¸ö´æ´¢¹ý³Ì¼´Ã»ÓвÎÊý£¬Ò²Ã»Óзµ»ØÖµ£¬¸ü²»ÔÊÐí·µ»Ø½á¹û¼¯£¬ÀýÈçselect * from bookÕâÖÖÓï¾äÊǾø¶Ô²»ÄÜдµ½´¥·¢Æ÷Öеġ£´ËÍ⣬´¥·¢Æ÷ÖÐÓÐÁ½¸öÂß¼­±í£¬insertedºÍdeleted£¬Ç°Õß´ú±íвåÈë»ò¸üеÄÖµ£¬ºóÕß´ú±íÊý¾Ý±íÖÐÒÑ´æÔÚ²¢½«±»¸üеô»òɾ³ýµôµÄÖµ£¬ÕâÀïÓõ½ÁËinserted¡£ÏÂÃæ¸Ï½ôÏòbook±íÖвåÈëÒ»ÌõÊý¾Ý£¬¿´¿´Ð§¹û°É£¡

    update´¥·¢Æ÷£¬´úÂ룺
CREATE TRIGGER dbo.t_update ON dbo.book
    For UPDATE AS
BEGIN
    IF UPDATE (bookname)
    BEGIN
        rollback transaction
    END

    declare @o_mesg nvarchar(100),
                   @ret int
    exec @ret = dbo.simple_demo 'N', @o_mesg output
    print '%1!--------%2!', @ret, @o_mesg
END
ÕâÀïÐèҪ˵Ã÷µÄÊÇIF UPDATE (bookname)£¬¸ÃÓï¾äÅжÏbookname×Ö¶ÎÊÇ·ñ±»¸üУ¬ÔÚÕâÀbookname±»¸üбã»áµ¼Ö»عö£¬¼´Êý¾ÝÓÀÔ¶ÎÞ·¨Í¨¹ýupdate bookname×ֶεķ½Ê½¸ü¸Ä¡£µ±Óжà¸ö×Ö¶ÎÐèÒª×÷ÕâÖÖÅжÏʱ£¬Ö»ÒªÐ´×÷¡°IF UPDATE(bookcode) and|or UPDATE(bookname)¡±¼´¿É¡£´ËÍ⣬Âß¼­±íinserted¡¢deletedÔÚupdate´¥·¢Æ÷ÖÐͬÑùÓÐЧ£¬Ïà¹ØËµÃ÷Çë¼ûinsert´¥·¢Æ÷¡£

    delete´¥·¢Æ÷£¬´úÂ룺
CREATE TRIGGER dbo.t_delete ON dbo.book
    For DELETE AS
BEGIN
    declare @bc nvarchar(10)
                 ,@bn nvarchar(50)
                 ,@ba nvarchar(10)
    --¶¨ÒåÓαê
    declare del_curs cursor for
        select bookcode, bookname, bookauthor
        from deleted
        order by bookcode

    open del_curs --´ò¿ªÓαê

    --Ñ­»·Óαê¶ÁÈ¡Êý¾Ý
    fetch del_curs into @bc, @bn, @ba
    while (@@sqlstatus = 0)
    begin
        print '±àºÅ£º%1!|Ãû³Æ£º%2!|×÷Õߣº%3!', @bc, @bn, @ba
        fetch del_curs into @bc, @bn, @ba
    end

    close del_curs --¹Ø±ÕÓαê
    deallocate cursor del_curs --ÊÍ·ÅÓαê
END
ÕâÀïʹÓÃÁËÂß¼­±ídeletedºÍÓαêÀ´²éѯ±»É¾³ýµÄÊý¾Ý¡£

    ×¢Ò⣬insert¡¢update¡¢delete´¥·¢Æ÷ÔÚÿÕűíÖж¼Ö»ÔÊÐí´´½¨Ò»¸ö£¬Èç¹ûÔٴδ´½¨£¬ÀýÈçinsert´¥·¢Æ÷£¬ÎÞÂÛʹÓÃʲôÃû×Ö£¬Èçtest_trigger£¬Ö®Ç°´´½¨µÄinsert´¥·¢Æ÷¶¼»á±»¸²¸Çµô¡£´ËÍ⣬SybaseÒ²ÔÊÐíÔÚÒ»¸ö´¥·¢Æ÷ÖÐÖ¸¶¨¶à¸ö²Ù×÷£¬ÀýÈ磺
CREATE TRIGGER dbo.t_author ON dbo.author
For INSERT, DELETE, UPDATE AS
BEGIN
    print 'author±íµÄ´¥·¢Æ÷±»Ö´ÐУ¡'
END
Õâ¸ö´¥·¢Æ÷¾Íͬʱ±»Ö¸¶¨ÁËinsert¡¢updateºÍdelete²Ù×÷¡£
    ´ËÍ⣬ÎÒÃÇ»¹¿ÉÒÔÖ¸¶¨´¥·¢Æ÷ʧЧ»òÕßÓÐЧ£¬Ö»ÒªÑ¡Öд¥·¢Æ÷£¬ÓÒ¼ü£¬µã»÷Disable/Enable£¬»òÕßÔÚInteractive SQL ÖÐÖ´ÐÐÃüÁ
    alter table dbo.book disable| enable trigger dbo.t_insert
¼´¿É¡£
    Èç¹ûÏëɾµô´¥·¢Æ÷£¬Ö»ÒªÑ¡Öд¥·¢Æ÷£¬ÓÒ¼ü£¬µã»÷Delete£¬»òÕßÔÚInteractive SQL ÖÐÖ´ÐÐÃüÁ
    drop trigger dbo.t_insert
¼´¿É¡£
Èý¡¢Ê¹ÓÃJava·ÃÎÊSybase
    ÎÒдÁËÁ½¸öJava·ÃÎÊSybaseµÄÀý×Ó£¬IDEÈÎÒ⣬Çý¶¯Î»ÓÚ${Sybase°²×°Ä¿Â¼}\jConnect-6_0\devclassesÏ£¬ ½«Îļþjconn3d.jarÒýÈë¼´¿É¡£

    µÚÒ»¸öÀý×ӵĴúÂëÈçÏ£º
package net.test.db.sybase;

import java.sql.*;

public class TestQuery {

public static void main(String[] args) {
     Connection cn = null;
     CallableStatement cs = null;
     ResultSet rs = null;

     try {
        // ³õʼ»¯Á¬½Ó¶ÔÏó
        Class.forName("com.sybase.jdbc3.jdbc.SybDriver";
        cn = DriverManager.getConnection("jdbc:sybase:Tds:image:5000/zhengTest?charset=cp936&jconnect_version=3", "sa", "";

        cs = cn.prepareCall("{call simple_query()}"; // »ñµÃÉùÃ÷¶ÔÏó

        rs = cs.executeQuery(); // Ö´ÐУ¬µ±Óнá¹û¼¯Ê±Ê¹ÓÃexecuteQuery()·½·¨Ö´ÐÐ

        while (rs.next()) {
            System.out.print("±àºÅ£º" + rs.getString(1));
            System.out.print("|Ãû³Æ£º" + rs.getString(2));
            System.out.println("|×÷Õߣº" + rs.getString(3));
        }

        if (rs != null)
            rs.close(); //¹Ø±Õ½á¹û¼¯
        if (cs != null)
            cs.close(); // ¹Ø±ÕÉùÃ÷
        if (cn != null)
            cn.close(); // ¹Ø±ÕÁ¬½Ó
    } catch (Exception ex) {
        ex.printStackTrace();
    } finally {
        rs = null;
        cs = null;
        cn = null;
    }
}
}
Õâ¸öÀý×ÓÑÝʾµÄÊÇÈçºÎ·ÃÎÊ´æ´¢¹ý³Ìsimple_query£¬¸Ã´æ´¢¹ý³Ì»á·µ»ØÒ»¸ö½á¹û¼¯¡£ÕâÀïÐèҪעÒâÁ½µã£ºÓÉÓÚsimple_query»á·µ»ØÒ»¸ö½á¹û¼¯£¬Òò´ËÐèҪʹÓÃcs.executeQuery()·½·¨Ö´ÐУ»ÔÚÉèÖÃÁ¬½Ó×Ö·û´®µÄʱºò£¬ÉèÖÃÁËcharset=cp936£¬¼´½«¿Í»§¶ËµÄ×Ö·û¼¯ÉèÖóÉcp936£¬ÕâÑù²é¿´½á¹ûʱ²Å²»»áÂÒÂë¡£

    µÚ¶þ¸öÀý×ӵĴúÂëÈçÏ£º
package net.test.db.sybase;

import java.sql.*;

public class TestDemo {

public static void main(String[] args) {
  Connection cn = null;
  CallableStatement cs = null;

  try {
   // ³õʼ»¯Á¬½Ó¶ÔÏó
   Class.forName("com.sybase.jdbc3.jdbc.SybDriver";
   cn = DriverManager.getConnection("jdbc:sybase:Tds:image:5000/zhengTest?charset=cp936&jconnect_version=3","sa", "";

   cs = cn.prepareCall("{?=call simple_demo(?,?)}"; // »ñµÃÉùÃ÷¶ÔÏó

   // ÉèÖòÎÊý
   cs.registerOutParameter(1, Types.INTEGER);
   cs.setString(2, "N";
   cs.registerOutParameter(3, Types.VARCHAR);

   cs.execute(); // Ö´ÐУ¬µ±Ã»Óзµ»Ø½á¹û¼¯Ê±£¬Îª·ÀÖ¹³ö´í£¬Ê¹ÓÃexecute()·½·¨×÷Ö´ÐÐ

   // Êä³ö´¦Àí½á¹û
   System.out.println(cs.getInt(1));
   System.out.println(cs.getString(3));

   if (cs != null)
    cs.close(); // ¹Ø±ÕÉùÃ÷
   if (cn != null)
    cn.close(); // ¹Ø±ÕÁ¬½Ó
  } catch (Exception ex) {
   ex.printStackTrace();
  } finally {
   cs = null;
   cn = null;
  }
}
}
Õâ¸öÀý×ÓÑÝʾµÄÊǶ¯Ì¬·ÃÎÊ´æ´¢¹ý³Ìsimple_demo£¬¸Ã´æ´¢¹ý³Ì´øÓÐÒ»¸öÊä³ö²ÎÊý£¬²¢ÓÐÒ»¸ö·µ»ØÖµ£¬ÔÚJDBCÖУ¬·µ»ØÖµºÍÊä³ö²ÎÊý¿ÉÒÔÈÏΪÊÇÒ»»ØÊ¡£ÕâÀïÐèҪעÒâµÄÊÇ£¬ÓÉÓÚÕâ¸ö´æ´¢¹ý³ÌûÓнá¹û¼¯£¬Òò´ËÖ´ÐÐʱӦ¸ÃʹÓÃcs.execute()·½·¨¡£
ËÄ¡¢Ê¹ÓÃVB.net/C#·ÃÎÊSybase
    ÎÒдÁËÁ½¸öVB.net/C#·ÃÎÊSybaseµÄÀý×Ó£¬IDEʹÓÃSharpDevelop 2.1£¬»·¾³Îª.net Framework 2.0£¬Çý¶¯Î»ÓÚ${Sybase°²×°Ä¿Â¼}\DataAccess\ADONET\dllÏ£¬ ÒýÓÃÆäÖеÄÎļþSybase.Data.AseClient.dllµ½ÏîÄ¿Öм´¿É¡£

    µÚÒ»¸öÀý×ÓµÄVB.net´úÂëÈçÏ£º
Imports Sybase.Data.AseClient

Public Class TestQuery
Sub New()
  Dim cn As AseConnection = Nothing
  Dim cmd As AseCommand = Nothing
  Dim rd As AseDataReader = Nothing
   
  Try
   '³õʼ»¯Á¬½Ó¶ÔÏó
   cn = New AseConnection("Data Source=image;Port=5000;UID=sa;PWD=;Database=zhengTest;CharSet=cp936;"
   
   cn.Open() '´ò¿ªÁ¬½Ó
   
   cmd = New AseCommand("exec simple_query", cn) '»ñµÃÃüÁî¶ÔÏó
   
   rd = cmd.ExecuteReader() 'Ö´ÐУ¬µ±ÓÐÖ»¶Á¼Ç¼¼¯Ê±Ê¹ÓÃExecuteReader()·½·¨Ö´ÐÐ

   While rd.Read()
    Console.Write("±àºÅ£º" & rd.GetString(0))
    Console.Write("|Ãû³Æ£º" & rd.GetString(1))
    Console.WriteLine("|×÷Õߣº" & rd.GetString(2))
   End While

   If rd IsNot Nothing Then
    rd.Close() '¹Ø±ÕÖ»¶Á¼Ç¼¼¯
   End If
   If cmd IsNot Nothing Then
    cmd.Dispose() 'Ïú»ÙÃüÁî¶ÔÏó
   End If
   If cn IsNot Nothing Then
    cn.Close() '¹Ø±ÕÁ¬½Ó¶ÔÏó
   End If
  Catch ex As AseException
   Console.WriteLine(ex.Message)
  Finally
   rd = Nothing
   cmd = Nothing
   cn = Nothing
  End Try
End Sub
End Class
    C#´úÂëÈçÏ£º
using System;
using Sybase.Data.AseClient;

namespace zhengTest_Sybase
{
public class TestQuery
{
  public TestQuery()
  {
   AseConnection cn = null;
   AseCommand cmd = null;
   AseDataReader rd = null;
   
   try
   {
    //³õʼ»¯Á¬½Ó¶ÔÏó
    cn = new AseConnection("Data Source=image;Port=5000;UID=sa;PWD=;Database=zhengTest;CharSet=cp936;";
   
    cn.Open(); //´ò¿ªÁ¬½Ó
   
    cmd = new AseCommand("exec simple_query", cn); //»ñµÃÃüÁî¶ÔÏó
   
    rd = cmd.ExecuteReader(); //Ö´ÐУ¬µ±ÓÐÖ»¶Á¼Ç¼¼¯Ê±Ê¹ÓÃExecuteReader()·½·¨Ö´ÐÐ

    while(rd.Read())
    {
     Console.Write("±àºÅ£º" + rd.GetString(0));
     Console.Write("|Ãû³Æ£º" + rd.GetString(1));
     Console.WriteLine("|×÷Õߣº" + rd.GetString(2));
    }
   
    if (rd != null)
     rd.Close(); //¹Ø±ÕÖ»¶Á¼Ç¼¼¯
    if (cmd != null)
     cmd.Dispose(); //Ïú»ÙÃüÁî¶ÔÏó
    if (cn != null)
     cn.Close(); //¹Ø±ÕÁ¬½Ó¶ÔÏó
   }
   catch( AseException ex )
   {
    Console.WriteLine(ex.Message);
   }
   finally
   {
    rd = null;
    cmd = null;
    cn = null;
   }
  }
}
}
¸úµÚÒ»¸öJavaÀý×ÓÒ»Ñù£¬Ò²ÊÇÑÝʾÈçºÎ·ÃÎÊsimple_query´æ´¢¹ý³Ì²¢¶Ô¼Ç¼¼¯½øÐвÙ×÷µÄ¡£ÕâÀïÇë×¢Ò⼸µã£ºµÚÒ»£¬Á¬½Ó×Ö·û´®ÖÐData Source=imageÖ¸µÄ²»ÊÇÊý¾ÝÔ´£¬¶øÊÇ·þÎñÆ÷£¬ÓëÉèÖÃServer=imageЧ¹ûÒ»Ñù£»µÚ¶þ£¬Á¬½Ó×Ö·û´®ÖеÄCharSet=cp936ÓÃÀ´ÉèÖÃ×Ö·û¼¯£¬µ«´Óµ±Ç°»·¾³¿´£¬Õâ¸öÉèÖò»ÊDZØÐëµÄ£¬ÖÁÓÚÎÒÊÇÈçºÎÖªµÀ¸Ã²ÎÊýÓÐЧµÄ£¬ÎÒ½«×Ö·û¼¯ÉèÖóÉcp850ºó³öÏÖÂÒÂëÁË£»µÚÈý£¬ÓÉÓÚsimple_query»á·µ»ØÒ»¸ö½á¹û¼¯£¬Òò´ËÐèҪʹÓÃExecuteReader·½·¨À´Ö´ÐУ¬ÕâµãÓëJavaºÜÀàËÆ¡£

    µÚ¶þ¸öÀý×ÓµÄVB.net´úÂëÈçÏ£º
Imports System.Data
Imports Sybase.Data.AseClient

Public Class TestDemo
Sub New()
  Dim cn As AseConnection = Nothing
  Dim cmd As AseCommand = Nothing

  Try
   '³õʼ»¯Á¬½Ó¶ÔÏó
   cn = New AseConnection("Data Source=image;Port=5000;UID=sa;PWD=;Database=zhengTest;"
   
   cn.Open()'´ò¿ªÁ¬½Ó
   
   cmd = New AseCommand("simple_demo", cn) '»ñµÃÃüÁî¶ÔÏó
   cmd.CommandType = CommandType.StoredProcedure 'ÉèÖÃÃüÁîÀàÐÍΪ´æ´¢¹ý³Ì

   'ÉèÖòÎÊý
   cmd.Parameters.Add("RETURN_VALUE", AseDbType.[Integer]).Direction = ParameterDirection.ReturnValue
   cmd.Parameters.Add("@i_mesg", "N")
   cmd.Parameters.Add("@o_mesg", AseDbType.NVarChar, 50).Direction = ParameterDirection.Output

   cmd.ExecuteNonQuery() 'Ö´ÐУ¬µ±Ã»Óзµ»Ø½á¹û¼¯Ê±£¬Ê¹ÓÃExecuteNonQuery()·½·¨×÷Ö´ÐÐ

   'Êä³ö´¦Àí½á¹û
   Console.WriteLine(cmd.Parameters(0).Value)
   Console.WriteLine(cmd.Parameters(2).Value)

   If cmd IsNot Nothing Then
    cmd.Dispose() 'Ïú»ÙÃüÁî¶ÔÏó
   End If
   
   If cn IsNot Nothing Then
    cn.Close() '¹Ø±ÕÁ¬½Ó¶ÔÏó
   End If
  Catch ex As AseException
   Console.WriteLine(ex.Message)
  Finally
   cmd = Nothing
   cn = Nothing
  End Try
End Sub
End Class
    C#´úÂëÈçÏ£º
using System;
using System.Data;
using Sybase.Data.AseClient;

namespace zhengTest_Sybase
{
public class TestDemo
{
  public TestDemo()
  {
   AseConnection cn = null;
   AseCommand cmd = null;
   
   try
   {
    //³õʼ»¯Á¬½Ó¶ÔÏó
    cn = new AseConnection("Data Source=image;Port=5000;UID=sa;PWD=;Database=zhengTest;");
   
    cn.Open(); //´ò¿ªÁ¬½Ó
   
    cmd = new AseCommand("simple_demo", cn); //»ñµÃÃüÁî¶ÔÏó
    cmd.CommandType = CommandType.StoredProcedure; //ÉèÖÃÃüÁîÀàÐÍΪ´æ´¢¹ý³Ì
   
    //ÉèÖòÎÊý
    cmd.Parameters.Add("RETURN_VALUE", AseDbType.Integer).Direction = ParameterDirection.ReturnValue;
    cmd.Parameters.Add("@i_mesg", "N");
    cmd.Parameters.Add("@o_mesg", AseDbType.NVarChar, 50).Direction = ParameterDirection.Output;
   
    cmd.ExecuteNonQuery(); //Ö´ÐУ¬µ±Ã»Óзµ»Ø½á¹û¼¯Ê±£¬Ê¹ÓÃExecuteNonQuery()·½·¨×÷Ö´ÐÐ
   
    //Êä³ö´¦Àí½á¹û
    Console.WriteLine(cmd.Parameters[0].Value);
    Console.WriteLine(cmd.Parameters[2].Value);
   
    if (cmd != null)
     cmd.Dispose(); //Ïú»ÙÃüÁî¶ÔÏó
    if (cn != null)
     cn.Close(); //¹Ø±ÕÁ¬½Ó¶ÔÏó
   }
   catch( AseException ex )
   {
    Console.WriteLine(ex.Message);
   }
   finally
   {
    cmd = null;
    cn = null;
   }
  }
}
}
¸úµÚ¶þ¸öJavaÀý×ÓÀàËÆ£¬ÑÝʾÈçºÎ·ÃÎÊsimple_demo´æ´¢¹ý³Ì¡£²»¹ýADO.netµ÷Óô洢¹ý³ÌµÄ·½Ê½ÓëJDBC²»Í¬£¬Ö»ÔÊÐíÔÚÃüÁî¶ÔÏóÖÐÊäÈë¹ý³ÌÃû×÷ΪÓï¾ä£¬¶øÇÒ²»Ö§³Ö¡°?¡±Õ¼Î»·û¡£¹ØÓÚ²ÎÊýÉèÖÃÖÐÓõ½µÄRETURN_VALUE¡¢@i_mesg¡¢@o_mesg£¬·Ö±ð´ú±ísimple_demoµÄ·µ»ØÖµºÍÁ½¸ö²ÎÊý¡£ÓÉÓÚsimple_demo²»»á·µ»Ø¼Ç¼¼¯£¬Òò´ËÐèҪʹÓÃExecuteNonQuery·½·¨À´Ö´ÐС£ÕâÀïÍÆ¼öÒ»ÏÂÎÄÕ¡¶½«´æ´¢¹ý³ÌÓÃÓÚÃüÁî¡·£¬¸ÃÎĶÔADO.net·ÃÎÊ´æ´¢¹ý³Ì½øÐÐÁ˱ȽÏÏêϸµÄ½éÉÜ£¬´Ó.net Framework×Ô´øÎĵµ»òÍøÉ϶¼ÄÜÕÒµ½¡£

    ÁíÍ⣬ÔÙÌṩÁ½¸öÁ¬½Ó×Ö·û´®£º
    Sybase for OLED£ºPROVIDER=ASEOLEDB;Server=image;Port=5000;User Id=sa;Password=;Initial Catalog=zhengTest;CharSet=cp936;
Çë×¢Òâ×Ö·û´®ÖеÄInitial Catalog=zhengTest£¬±íʾҪ·ÃÎÊÎÒÔÚSybaseÖд´½¨µÄzhengTestÊý¾Ý¿â£¬¶øCharSet=cp936ÊÇÓÃÀ´ÉèÖÃ×Ö·û¼¯µÄ£¬²»ÉèÖûáÂÒÂë¡£
    Sybase for ODBC£ºDSN=zhengTest_Sybase;UID=sa;PWD=;CharSet=cp936;
×Ö·û´®ÖеÄDSN=zhengTest_Sybase±íʾ·ÃÎÊÎÒÔÚODBCÖÐÉèÖõÄÊý¾ÝÔ´zhengTest_Sybase£¨ÈçºÎÔÚODBCÖÐÉèÖÃÊý¾ÝÔ´¾Í²»ÑÝʾÁË£©£¬¶øCharSet=cp936Ò²ÊÇÓÃÀ´ÉèÖÃ×Ö·û¼¯µÄ£¬µ«ÔÚµ±Ç°»·¾³Öв»ÊDZØÐëµÄ¡£
¹ØÓÚOLEDBºÍODBCµÄʹÓã¬ÓëʾÀýÀàËÆ£¬Çë²Î¿¼ÆäËûADO.netÊé¼®»òÎĵµ¡£
Î塢ʹÓÃPerl·ÃÎÊSybase
     ÎÒʹÓõÄPerlÊÇ5.8.8 build 820£¬ËäȻĬÈϲ»´øÊý¾Ý¿â·ÃÎʽӿڣ¬µ«¿ÉÒÔʹÓù¤¾ßppmÏÂÔØµ½DBI¡£
     ´ò¿ªÃüÁîÐй¤¾ß£¬ÊäÈëppm search dbi£¬²éÕÒdbi£¬ÓÐ183¸ö½á¹û£¬ÎÒÃÇÐèÒªµÄÊǵÚ56¸ö¡ª¡ªDBI v1.57¡£ÏÂÃæÖ´ÐÐÃüÁîppm install dbi£¬Èç¹ûÌáʾ´íÎó£¬Çë³¢ÊÔppm install 56£¬¼´°²×°²éѯ½á¹ûÖеĵÚ56¸ö¡£²»¹ý°²×°½áÊøºó£¬ÔÝʱ»¹ÊÇÎÞ·¨Ê¹ÓÃDBIÀ´Á¬½ÓÊý¾Ý¿â£¬ÒòΪDBIÌṩµÄÖ»ÊÇÒ»Ì×Êý¾Ý¿â½Ó¿Ú£¬¶ø²»ÊÇÊý¾Ý¿âÇý¶¯£¬Òò´Ë»¹ÐèÒª°²×°dbd-adoºÍdbd-odbc£¬°²×°·½·¨Í¬dbi¡£
    ²»¹ýÄú»òÐíÒѾ­×¢Òâµ½ÁË£¬ÎÒʹÓõÄdbi°æ±¾²»ÊÇ×îеÄ1.58£¬¶øÇÒÇý¶¯Ò²²»ÊÇdbd-sybase£¬µÄÈ·£¬ÒòΪÕâЩ¶¼Ã»Óа²×°°ü£¬Ö»ÄÜ´Óhttp://www.perl.com/CPAN/ÉÏÏÂÔØÔ ... éµÄÏ뷨ͳͳ·ÅÆúÁË¡£

     ÕâÀïÒ²ÊÇÁ½¸öÀý×Ó¡£µÚÒ»¸öÀý×ӵĴúÂëÈçÏ£º
use DBI;
#´´½¨Á¬½Ó¶ÔÏó£¬ÀàÐÍΪADO
$dbh=DBI->connect('DBI:ADO:PROVIDER=ASEOLEDB;Server=image;Port=5000;User Id=sa;Password=;Initial Catalog=zhengTest;CharSet=cp936;');

$sth=$dbh->prepare('exec simple_query' ); #»ñµÃÉùÃ÷¶ÔÏó
$sth->execute; #µ±Óнá¹û¼¯Ê±£¬Ê¹ÓÃexecute·½·¨

while (@row=$sth->fetchrow_array) {
  print '±àºÅ£º', $row[0];
  print '|Ãû³Æ£º', $row[1];
  print '|×÷Õߣº', $row[2], "\n";
}

$sth->finish if $sth; #¹Ø±ÕÉùÃ÷

$dbh->disconnect if $dbh; #¶Ï¿ªÁ¬½Ó
Ò²ÊÇÑÝʾÈçºÎ·ÃÎÊsimple_query´æ´¢¹ý³Ì²¢¶Ô½á¹û¼¯½øÐвÙ×÷µÄ¡£ÕâÀïÇë×¢ÒâÁ½µã£ºµÚÒ»£¬±¾ÀýʹÓõÄÇý¶¯ÀàÐÍΪADO£¬ÆäÁ¬½Ó×Ö·û´®ÖУ¬Initial Catalog=zhengTest±íʾҪ·ÃÎÊÎÒÔÚSybaseÖд´½¨µÄzhengTestÊý¾Ý¿â£¬¶øCharSet=cp936Ôò±íʾÉèÖÃ×Ö·û¼¯Îªcp936£¬Ä¿µÄÔÚÓÚ±ÜÃâÂÒÂ룻µÚ¶þ£¬ÓÉÓÚsimple_query»á·µ»ØÒ»¸ö½á¹û¼¯£¬Òò´ËÐèҪʹÓÃexecute·½·¨À´Ö´ÐУ¬ÕâµãÓëÇ°ÃæºÜÀàËÆ¡£

    µÚ¶þ¸öÀý×ӵĴúÂëÈçÏ£º
use DBI;
#´´½¨Á¬½Ó¶ÔÏó£¬ÀàÐÍΪODBC
$dbh=DBI->connect('DBI:ODBCSN=zhengTest_Sybase;UID=sa;PWD=;CharSet=cp936;');

$sql='{?=call simple_demo(?,?)}';
$ret='';
$msg='';

$sth=$dbh->prepare($sql); #»ñµÃÉùÃ÷¶ÔÏó

#ÉèÖòÎÊý
$sth->bind_param_inout(1, \$ret, 1);
$sth->bind_param(2, 'N');
$sth->bind_param_inout(3, \$msg, 100);

$sth->execute; #Ö´ÐÐ

#Êä³ö´¦Àí½á¹û
print $ret, "\n";
print $msg, "\n";

$sth->finish if $sth; #¹Ø±ÕÉùÃ÷

$dbh->disconnect if $dbh; #¶Ï¿ªÁ¬½Ó
Ò²ÊÇÑÝʾ¶¯Ì¬·ÃÎÊsimple_demo´æ´¢¹ý³ÌµÄ¡£ÕâÀïÐèҪעÒâµÄÊÇ£¬±¾ÀýʹÓõÄÇý¶¯ÀàÐÍΪODBC£¬ÆäÁ¬½Ó×Ö·û´®ÖУ¬DSN=zhengTest_Sybase±íʾ·ÃÎÊÎÒÔÚODBCÖÐÉèÖõÄÊý¾ÝÔ´zhengTest_Sybase£¬¶øCharSet=cp936Ôò±íʾÉèÖÃ×Ö·û¼¯Îªcp936£¬ÕâÀïÊDZØÐëµÄ¡£
Áù¡¢Ê¹ÓÃRuby·ÃÎÊSybase
    ÎÒʹÓõÄRubyÊÇ1.8.6-25£¬ÒѰ²×°Rails 1.2.3¡£ÓÉÓÚRubyĬÈϲ»´øÊý¾Ý¿â·ÃÎʽӿڣ¬Òò´ËÇëÏÈ´Óhttp://rubyforge.org/projects/ru ... ½ÕßÓкܶàÏàËÆÖ®³ö¡£
    ÏÂÔØÍêdbi-0.1.1.tar.gzÎļþÖ®ºó£¬½âѹËõ£¬ÔÚÃüÁîÐÐÖж¨Î»µ½½âѹºóµÄĿ¼Ï£¬ÀýÈçF:\ruby-dbi£¬Ö´ÐÐÃüÁ
    ruby setup.rb config --with=dbi,dbd_ado,dbd_odbc
    ruby setup.rb setup
    ruby setup.rb install
´Ëʱdbi½Ó¿ÚÁ¬´ødbd_ado¡¢dbd_odbcÇý¶¯¾Í¶¼°²×°µ½ÏµÍ³ÖÐÁË¡£
    ¾Ý˵dbiËùÌṩµÄÇý¶¯½öÊDZí²ãµÄ£¬Èç¹ûҪʹÓû¹ÐèÒª°²×°µ×²ãÇý¶¯£¬ÀýÈçPostgreSQL£¬¾Í»¹ÐèÒª°²×°ruby-postgres¡£²»¹ýËÆºõÊÇÒòΪÎÒ°²×°ÁËRailsµÄÔµ¹Ê£¨Rails´øÓÐactiverecord£¬¾Ý˵Àï±ß°üº¬Á˺ܶàÇý¶¯£©£¬ÎÒÔÚʹÓõĹý³ÌÖе¹Ò²Ã»±»ÒªÇó°²×°µ×²ãÇý¶¯¡£
    ´ËÍ⣬ÎÒҲûÓÐʹÓÃdbd_sybaseÇý¶¯¡£²»ÖªµÀΪʲô£¬dbd_sybase¾ÓÈ»ÐèÒª±àÒ룬¶øÎÒÔÚcygwinºÍWindowsÃüÁîÐÐ϶¼½øÐйý³¢ÊÔ£¬»¹°²×°ÁËMinGW£¨GCCµÄWindows°æ±¾£©£¬ÉõÖÁ²éÕÒÁËperl-dbiºÍfreetdsµÄ×ÊÁÏ£¬½á¹û»¹ÊÇʧ°Ü¡£×î¿ÉºÞµÄÊÇdbd_sybaseµ÷ÓõĽӿھÓÈ»¸úfreetdsºÍrubyÖж¨ÒåµÄ½Ó¿Ú²»Ò»Ö£¬ºóÀ´¿´ÁËdbd_sybase´úÂë²Å·¢ÏÖ£¬¾ÓÈ»ÊÇ2001ÄêµÄ¡£×îºó£¬dbd_sybaseµ½µ×ûװÉÏ£¬¿ÉÊÇmakeµ¹Ñ§»áÁË¡£º¹£¡

    ÕâÀïÒ²ÊÇ»¹¸öÀý×Ó¡£µÚÒ»¸öÀý×ӵĴúÂëÈçÏ£º
require 'dbi'
#´´½¨Á¬½Ó¶ÔÏó£¬ÀàÐÍΪADO
dbh=DBI.connect('DBI:ADO:PROVIDER=ASEOLEDB;Server=image;Port=5000;User Id=sa;Password=;Initial Catalog=zhengTest;CharSet=cp936;')

sth=dbh.prepare('exec simple_query') #»ñµÃÉùÃ÷¶ÔÏó
sth.execute #µ±Óнá¹û¼¯Ê±£¬Ê¹ÓÃexecute·½·¨

while row=sth.fetch do
  print '±àºÅ£º', row[0]
  print '|Ãû³Æ£º', row[1]
  print '|×÷Õߣº', row[2], "\n"
end

sth.finish if sth #¹Ø±ÕÉùÃ÷

dbh.disconnect if dbh #¶Ï¿ªÁ¬½Ó

    µÚ¶þ¸öÀý×ӵĴúÂëÈçÏ£º
require 'dbi'
#´´½¨Á¬½Ó¶ÔÏó£¬ÀàÐÍΪODBC
dbh=DBI.connect('DBI:ODBCSN=zhengTest_Sybase;UID=sa;PWD=;CharSet=cp936;')

sql='{?=call simple_demo(?,?)}' #Ö§³Ö¸Ã´úÂë
ret=''
msg=''

sth=dbh.prepare(sql)  #»ñµÃÉùÃ÷¶ÔÏó

#ÉèÖòÎÊý
sth.bind_param(1, ret)
sth.bind_param(2, 'N')
sth.bind_param(3, msg)

sth.execute  #Ö´ÐÐ

#ÓÉÓÚdbi²»Ö§³ÖÊä³ö²ÎÊý£¬Òò´ËÕâÀïÎÞ·¨»ñÈ¡simple_demoµÄ·µ»ØÖµÓëÊä³ö²ÎÊý

sth.finish if sth #¹Ø±ÕÉùÃ÷

dbh.disconnect if dbh #¶Ï¿ªÁ¬½Ó
ÑÝʾ¶¯Ì¬·ÃÎÊsimple_demo´æ´¢¹ý³Ì¡£²»¹ýÓÉÓÚdbi²»Ö§³Ö´æ´¢¹ý³ÌµÄÊä³ö²ÎÊý£¬×¢ÒâÊÇ´æ´¢¹ý³Ì£¬ËùÒÔÔÚÕâ¸öʾÀýÖÐûÓлñÈ¡·µ»ØÖµµÄ´úÂë¡£

    Ò²²»ÖªµÀΪʲô£¬dbiÖ»Ö§³Öº¯ÊýµÄÊä³ö²ÎÊý£¬¶ø²»Ö§³Ö´æ´¢¹ý³ÌµÄÊä³ö²ÎÊý£¬ËƺõSQL ServerºÍDB2µÄ´æ´¢¹ý³ÌҲͬÑùÎÞ·¨·µ»ØÊä³ö²ÎÊý¡£
    ÓÉÓÚ±¾ÎÄÖ»ÊÇʹÓÃRuby·ÃÎÊSybase£¬Òò´Ëû´òËã¶Ôdbi×÷ÉîÈë½éÉÜ¡£Èç¹û¶ÔdbiÓÐÐËȤ£¬½¨ÒéÔÚÍøÉÏÕÒһƪÃûΪ¡¶firstworks Programming with SQL Relay using the Ruby DBI API¡·µÄÎÄÕ£¬ËäÈ»ÊÇÓ¢Îĵ쬵«ÄÚÈݺÜÈ«Ãæ£¬¶Ô¶àÖÖÊý¾Ý¿â¶¼ÓнéÉÜ£¬ÖµµÃÒ»¿´¡£
    ±ð¸æËßÎÒÄãÓ¢ÎIJ»ºÃ£¬ÎÒÓ¢ÎÄÒ²²»ºÃ£¬²»Ò²ÊÇÓÃ׎ðɽ´Ê°Ô¾ÍÄÇô¿´ÁËÂð^_^
Æß¡¢Ð¡½á
    ±¾ÎÄÖ»ÊǶÔSybase²Ù×÷µÄ¼òµ¥½éÉÜ£¬ÏñË÷Òý¡¢ÐòÁÐÕâЩ¶¼Ã»ÓÐ×÷˵Ã÷£¬¶øÇÒ¸ø³öµÄJava¡¢.net¡¢PerlºÍRubyʾÀýÒ²¶¼±È½Ï¼òµ¥£¬Èç¹ûÏ£ÍûÁ˽â¸ü¶àÄÚÈÝ£¬»¹Çë²Î¿¼ÆäËûÊé¼®»òÎĵµ¡£
    ´ËÍ⣬SQL ServerÓëSybaseϵ³öͬÃÅ£¬´óÔ¼ÊÇÔÚSybase 6µÄʱºò΢Èí²»Ô¸ÔÙͬSybase¹«Ë¾ºÏ×÷¶ø·Ö³ÉÁ½Ö§µÄ£¬Òò´ËÈç¹ûÊÖͷȱÉÙSybase×ÊÁÏ£¬Ò²²»·Á²Î¿¼Ò»ÏÂSQL ServerµÄÎĵµ¡£²»¹ý×÷Ϊһ¿î´óÐÍÊý¾Ý¿â£¬SybaseÖÁ½ñÒÑ·¢²¼ÁË15¸ö´óµÄ°æ±¾£¬È´²»ÖªµÀΪʲô£¬ÔÚ³ÌÐòºº»¯ºÍ°ïÖúÎĵµ·½Ãæ×öµÃʼÖպܲ¶øÇÒÌṩµÄ¹¦ÄÜÒ²ºÜÈõ£¬ÏñÓû§×Ô¶¨Ò庯Êý¡¢try-catchÓï¾äºÍrow_numberº¯ÊýÕâЩ£¬ÖÁ½ñûÓУ¬Òò´ËÔÚʹÓÃSQL ServerÎĵµµÄʱºò£¬Èç¹û·¢ÏÖijЩ¹¦ÄÜÔÚSybaseÖÐʵÏÖ²»ÁË£¬Çë²»ÒªÆæ¹Ö¡£

ʹÓõÀ¾ß ¾Ù±¨

»Ø¸´
ÂÛ̳»ÕÕÂ:
3
»áÔ±2007¹±Ï×»ÕÕÂ
ÈÕÆÚ:2007-09-26 18:42:10ÊÚȨ»áÔ±
ÈÕÆÚ:2007-10-23 20:58:17ÓÅÐãдÊÖ
ÈÕÆÚ:2014-03-01 06:00:03
14#
·¢±íÓÚ 2007-7-19 12:43 | Ö»¿´¸Ã×÷Õß
ÐÁ¿àÁË£¬Ð»Ð»

ʹÓõÀ¾ß ¾Ù±¨

»Ø¸´
ÂÛ̳»ÕÕÂ:
0
15#
·¢±íÓÚ 2007-7-19 23:41 | Ö»¿´¸Ã×÷Õß
Â¥Ö÷Äܲ»ÄÛ°ÑÄãÏÂÔØsybaseµÄlinkÌùһϣ¬ÎÒÕÒÁ˺þÃûÕÒµ½£¬ÏÈлÁË

ʹÓõÀ¾ß ¾Ù±¨

»Ø¸´
ÂÛ̳»ÕÕÂ:
1
ITPUBÐÂÊ×Ò³ÉÏÏß¼ÍÄî»ÕÕÂ
ÈÕÆÚ:2007-10-20 08:38:44
16#
·¢±íÓÚ 2007-11-26 10:42 | Ö»¿´¸Ã×÷Õß
ºÃ¶«Î÷²»ÄܲãÏÂÈ¥

ʹÓõÀ¾ß ¾Ù±¨

»Ø¸´
ÂÛ̳»ÕÕÂ:
1
ITPUBÊ®ÖÜÄê¼ÍÄî»ÕÕÂ
ÈÕÆÚ:2011-11-01 16:24:51
17#
·¢±íÓÚ 2008-11-15 23:12 | Ö»¿´¸Ã×÷Õß
thanks

ʹÓõÀ¾ß ¾Ù±¨

»Ø¸´
ÂÛ̳»ÕÕÂ:
0
18#
·¢±íÓÚ 2008-11-18 16:58 | Ö»¿´¸Ã×÷Õß
nice

ʹÓõÀ¾ß ¾Ù±¨

»Ø¸´
ÂÛ̳»ÕÕÂ:
0
19#
·¢±íÓÚ 2008-12-12 12:50 | Ö»¿´¸Ã×÷Õß
¿´¿´£¬Ð»Ð»¡£

ʹÓõÀ¾ß ¾Ù±¨

»Ø¸´
ÂÛ̳»ÕÕÂ:
0
20#
·¢±íÓÚ 2009-2-14 01:01 | Ö»¿´¸Ã×÷Õß
À÷º¦°¡,ºÃÇ¿,ѧϰÀ­

ʹÓõÀ¾ß ¾Ù±¨

»Ø¸´

ÄúÐèÒªµÇ¼ºó²Å¿ÉÒÔ»ØÌû µÇ¼ | ×¢²á

±¾°æ»ý·Ö¹æÔò ·¢±í»Ø¸´

TOP¼¼Êõ»ý·Ö°ñ ÉçÇø»ý·Ö°ñ »ÕÕ ÍÅ¶Ó Í³¼Æ ֪ʶË÷ÒýÊ÷ »ý·Ö¾ºÅÄ Îı¾Ä£Ê½ °ïÖú
  ITPUBÊ×Ò³ | ITPUBÂÛ̳ | Êý¾Ý¿â¼¼Êõ | ÆóÒµÐÅÏ¢»¯ | ¿ª·¢¼¼Êõ | ΢Èí¼¼Êõ | Èí¼þ¹¤³ÌÓëÏîÄ¿¹ÜÀí | IBM¼¼ÊõÔ°µØ | ÐÐÒµ×ÝÏòÌÖÂÛ | ITÕÐÆ¸ | ITÎĵµ
  ChinaUnix | ChinaUnix²©¿Í | ChinaUnixÂÛ̳
CopyRight 1999-2011 itpub.net All Right Reserved. ±±¾©Ê¢ÍØÓÅѶÐÅÏ¢¼¼ÊõÓÐÏÞ¹«Ë¾°æÈ¨ËùÓС¡ÁªÏµÎÒÃÇ Î´³ÉÄêÈ˾ٱ¨×¨Çø¡¡
¾©ICP±¸16024965ºÅ-8 ¡¡±±¾©Êй«°²¾Öº£µí·Ö¾ÖÍø¼àÖÐÐı¸°¸±àºÅ£º11010802021510¡¡¹ã²¥µçÊÓ½ÚÄ¿ÖÆ×÷¾­ÓªÐí¿ÉÖ¤£º±àºÅ£¨¾©£©×ÖµÚ1149ºÅ
  
¿ìËٻظ´ ·µ»Ø¶¥²¿ ·µ»ØÁбí