zoukankan      html  css  js  c++  java
  • 数据库 Proc编程一

    proc编程
    嵌入式sql:sql写入到C语言程序中
    
    proc编程头文件路径
    appxxxproduct11.2.0dbhome_1precomppublic
    
    proc编程要注意proc编译器也会使用gcc编译器中的头文件,所以需要在proc编译器中进行配置,加上系统的头文件路径
    配置文件路径是:appxxxproduct11.2.0dbhome_1precompadminpcscfg.cfg
    
    
    proc开发流程
    
    1.proc工具预编译 *.pc==>.c
    proc编译选项:parse=full|none(default full for C,others for c++) code=ANSI_C|CPP(default ansi_c)
    C语言编译:proc 源文件 生成文件
    c++编译:proc  源文件 生成文件 parse=none code=cpp
    2.linux下编译gcc -o dm01_hello dm01_hello.c -I/home/oracle_11/app/oracle/product/11.2.0/db_1/precomp/public 
        -L/home/oracle_11/app/oracle/product/11.2.0/db_1/lib  -lclntsh
    --linux查看oracle错误码:oerr ora 错误码
    3.执行应用程序
    
    proc程序结构
    include 头文件(c/c++ and pro*c/c++)
    定义变量
    定义函数
    main
        连接数据库:connect
        SQL操作语句:EXEC SQL...
        处理异常:exception handler
        断开连接:EXEC SQL COMMIT.ROLLBACK WORK release
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include "sqlca.h"
    
    //先定义宿主变量(SQL变量)
    EXEC SQL BEGIN DECLARE SECTION;
        char * serverid="scott/123456";
    EXEC SQL END DECLARE SECTION;
    
    void main()
    {
        int ret=0;
        //C语言中使用宿主变量
        printf("serverid=%s
    ",serverid);
        //连接数据库
        EXEC SQL connect:serverid;
        if(sqlca.sqlcode!=0)
        {
            ret=sqlca.sqlcode;
            printf("connect err :%d",ret);
            system("pause");
        }
        printf("connect ok!
    ");
        //提交事务断开连接
        EXEC SQL commit release;
        printf("Oracle closed !
    ");
        system("pause");
    }
  • 相关阅读:
    Batch
    Batch
    《mysql必知必会》学习_第17章
    指针实现时间复杂度为O(n*logN)的排序算法(归并排序算法)
    《自控力》读书笔记
    Leetcode 49. Group Anagrams (242.Valid Anagram)
    Leetcode43. Multiply Strings
    Leetcode 233. Number of Digit One
    Python 格式化输出占位符替换
    Python字符串拼接
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/6275336.html
Copyright © 2011-2022 走看看