Pro C 學習

來源:互聯網
上載者:User

由於以後的工作需要用到,所以從現在開始學習Pro C

下面是一個簡單的樣本程式:

#include
.
.
.

EXEC SQL INCLUDE sqlca;
EXEC ORACLE OPTION (RELEASE_CURSOR = YES);
EXEC SQL BEGIN DECLARE SECTION;
varchar vc_user[20];
long al_empno = 0;
char ac_ename[11] = "";
char ac_hiredate[20] = "";
double af_sal = 0;
EXEC SQL VAR ac_ename IS STRING(11);
EXEC SQL VAR ac_hiredate IS STRING(20);
EXEC SQL END DECLARE SECTION;
//錯誤處理函數
void sql_error(char *msg)
{
    printf("/n%s,%ld,%s/n", msg, sqlca.sqlcode, (char *)sqlca.sqlerrm.sqlerrmc);
    EXEC     SQL ROLLBACK RELEASE;
    exit(-1);
}    
void main()
{
    EXE SQL WHENEVER SQLERROR DO sql_error("ORACLE ERROR");
    //串連資料庫
    strcpy(vc_user.arr, "scott/tiger@DEMO");
    vc_user.len = 16;
    EXEC SQL CONNECT :vc_user;
    EXEC SQL DECLARE cur_emp CURSOR FOR
    SELECT EMPNO, ENAME, to_char(HIREDATE, 'YYYY/MM/DD HH24:MI:SS');
    EXEC SQL OPEN cur_emp;
while(1)
    {
        al_empno = 0;
     al_empno=0;
strcpy(ac_ename,"");
strcpy(ac_hiredate,"");
af_sal=0;
        EXEC SQL FETCH cur_emp
        INTO :al_empno, :ac_ename:ename_ind, :ac_hiredate:hiredate_ind, :af_sal:sal_ind;
        if(sqlca.sqlcode == 1403)
            {
                break;   
            }
            printf("empno=%ld,ename=%s,hiredate=%s,sal=%lf/n",al_empno,ac_ename,ac_hiredate,af_sal);
           
    }
    EXEC SQL CLOSE cur_emp;
    EXESQL ROLLBACK WORK RELEASE;

//在PROC程式中,要記住用EXEC SQL ROLLBACK WORK RELEASE;斷開與資料庫的串連,並釋放相關的資料庫資源

   
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.