⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 object.c

📁 ORACLE编程的好东西,纯C写的OCI封装.很好用,支持数据池.
💻 C
字号:
#include "ocilib.h"

/* 
    DML for the test 

    create type t_vendor as object
    ( 
        code  number, 
        name  varchar2(30)
    ); 

    create type t_sale as object 
    ( 
        code  number, 
        price  float, 
        name  varchar2(30),
        ref  varchar2(30), 
        date_sale date, 
        vendor  t_vendor
    ); 

    create table sales(item t_sale);

*/

int main()
{
    OCI_Connection *cn;
    OCI_Statement *st;
    OCI_Object *obj, *obj2;
    OCI_Date *date;

    if (!OCI_Initialize(err_handler, NULL, OCI_ENV_DEFAULT))
        return EXIT_FAILURE;

    cn = OCI_ConnectionCreate("db", "usr", "pwd", OCI_SESSION_DEFAULT);
    st = OCI_StatementCreate(cn);

    obj  = OCI_ObjectCreate(cn, OCI_SchemaGet(cn, "t_sale", OCI_SCHEMA_TYPE));

    OCI_ObjectSetInt(obj, "CODE", 1);
    OCI_ObjectSetDouble(obj, "PRICE", 12.99);
    OCI_ObjectSetString(obj, "NAME", "USB KEY 2go");
    OCI_ObjectSetString(obj, "REF", "A56547WSAA");

    date = OCI_ObjectGetDate(obj, "DATE_SALE");
    OCI_DateSysDate(date);

    obj2 = OCI_ObjectGetObject(obj, "VENDOR");
    OCI_ObjectSetInt(obj2, "CODE", 134);
    OCI_ObjectSetString(obj2, "NAME", "JOHN SMITH");

    OCI_Prepare(st, "insert into sales values(:obj)");
    OCI_BindObject(st, ":obj", obj);
    OCI_Execute(st);
    printf("\n%d row(s) inserted\n", OCI_GetAffectedRows(st));

    OCI_Commit(cn);

    OCI_ObjectFree(obj);

    OCI_Cleanup();

    return EXIT_SUCCESS;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -