zoukankan      html  css  js  c++  java
  • [solaris]odbc-oracle,简单测试

    #include <string>
    #include <iostream>
    #include <stdio.h>
    #include <sql.h>
    #include <sqlext.h>
    #include <sqltypes.h>
    #include <sqlucode.h>
    
    
    int main()
    {
    
        HENV henv;
        RETCODE ret;
        ret = ::SQLAllocEnv(&henv);
        if(ret != SQL_SUCCESS)
        {
            std::cout << "alloc henv failed!" << std::endl;
            return -1;
        }    
        HDBC hdbc;
        ret = SQLAllocConnect(henv, &hdbc);
        if(ret != SQL_SUCCESS)
        {
            std::cout << "alloc hdbc failed!" << std::endl;
            return -1;
        }
        
        ret = SQLConnect(hdbc, (SQLCHAR *)("ORCL"), 
                    10, 
                    (SQLCHAR *)("scott"),
                    9, 
                    (SQLCHAR *)("tiger"),
                    12);
        if(ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO)
        {
            std::cout << "connect failed!" << ret << std::endl;
            return -1;
        }
        HSTMT hstmt;
        ret = SQLAllocStmt(hdbc, &hstmt);
        if(ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO)
        {
            std::cout << "alloc stmt failed!" << std::endl;
            return -1;
        }
        SQLExecDirect(hstmt, (UCHAR *)("select * from dept"), SQL_NTS);
        if(ret != SQL_SUCCESS &&  ret != SQL_SUCCESS_WITH_INFO)
        {
            std::cout << "exec failed!" << std::endl;
            return -1;
        }
        while( (ret = SQLFetch(hstmt)) != SQL_NO_DATA)
        {
            std::cout << "row" << std::endl;
        }
    
        ret = SQLExecDirect(hstmt,(SQLCHAR*)"create table provider (sno char(5) primary key,sname char(10) not null,status int,city char(10))", SQL_NTS);
            if(ret<0)
            {
                    std::cout<<"creat errors."<<std::endl;
                    return -1;
            }
    
            ret = SQLExecDirect(hstmt,(SQLCHAR*)"insert into provider values('S1','精益','20','天津')",SQL_NTS);
            if(ret<0)
            {
                   std::cout<<"s1 insert errors."<<std::endl;
                   return -1;
            }
    
           ret = SQLExecDirect(hstmt,(SQLCHAR*)"insert into provider values('S2','西方','30','上海')",SQL_NTS);
            if(ret<0)
            {
                    std::cout<<"s2 insert errors."<<std::endl;
                    return -1;
             }
    
           ret = SQLExecDirect(hstmt,(SQLCHAR*)"insert into provider values('S3','邦飞','22','成都')",SQL_NTS);
            if(ret<0)
            {
                    std::cout<<"s3 insert errors."<<std::endl;
                    return -1;
             }
    
        ret = SQLExecDirect(hstmt, (SQLCHAR*)"select sname, city FROM provider where sno='s1'", SQL_NTS); 
        if(ret<0)
        {
            std::cout << "Executing statement throught ODBC errors." << std::endl;
            return -1;
        }
    
        ret = SQLExecDirect(hstmt, (SQLCHAR*)"update provider set sname='浩瀚' where sno='s2'", SQL_NTS);
        if(ret<0)
        {
            std::cout <<" update s2 name error" << std::endl;
        }
    
        ret = SQLExecDirect(hstmt, (SQLCHAR*)"drop table provider", SQL_NTS);
        if(ret<0)
        {
            std::cout << "drop table provider error." << std::endl;
            return -1;
        }
    
        std::cout << "done!" << std::endl;
        return 0;
    }
  • 相关阅读:
    107、Java中String类之判断开头或结尾
    106、Java中String类之使用contains()方法判断子字符串是否存在
    105、Java中String类之利用indexOf()方法判断子字符串是否存在
    104、Java中String类之使用indexOf()等功能查找
    103、Java中String类之compareTo()方法
    102、Java中String类之相等判断(忽略大小写)
    101、Java中String类之判断是否由数字组成
    100、Java中String类之字符串转为大写
    099、Java中String类之字符数组与字符串的转换
    098、Java中String类之charAt()方法
  • 原文地址:https://www.cnblogs.com/luoxiang/p/4644856.html
Copyright © 2011-2022 走看看