#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 -;
}
HDBC hdbc;
ret = SQLAllocConnect(henv, &hdbc);
if(ret != SQL_SUCCESS)
{
std::cout << "alloc hdbc failed!" << std::endl;
return -;
} ret = SQLConnect(hdbc, (SQLCHAR *)("ORCL"),
,
(SQLCHAR *)("scott"),
,
(SQLCHAR *)("tiger"),
);
if(ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO)
{
std::cout << "connect failed!" << ret << std::endl;
return -;
}
HSTMT hstmt;
ret = SQLAllocStmt(hdbc, &hstmt);
if(ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO)
{
std::cout << "alloc stmt failed!" << std::endl;
return -;
}
SQLExecDirect(hstmt, (UCHAR *)("select * from dept"), SQL_NTS);
if(ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO)
{
std::cout << "exec failed!" << std::endl;
return -;
}
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<)
{
std::cout<<"creat errors."<<std::endl;
return -;
} ret = SQLExecDirect(hstmt,(SQLCHAR*)"insert into provider values('S1','精益','20','天津')",SQL_NTS);
if(ret<)
{
std::cout<<"s1 insert errors."<<std::endl;
return -;
} ret = SQLExecDirect(hstmt,(SQLCHAR*)"insert into provider values('S2','西方','30','上海')",SQL_NTS);
if(ret<)
{
std::cout<<"s2 insert errors."<<std::endl;
return -;
} ret = SQLExecDirect(hstmt,(SQLCHAR*)"insert into provider values('S3','邦飞','22','成都')",SQL_NTS);
if(ret<)
{
std::cout<<"s3 insert errors."<<std::endl;
return -;
} ret = SQLExecDirect(hstmt, (SQLCHAR*)"select sname, city FROM provider where sno='s1'", SQL_NTS);
if(ret<)
{
std::cout << "Executing statement throught ODBC errors." << std::endl;
return -;
} ret = SQLExecDirect(hstmt, (SQLCHAR*)"update provider set sname='浩瀚' where sno='s2'", SQL_NTS);
if(ret<)
{
std::cout <<" update s2 name error" << std::endl;
} ret = SQLExecDirect(hstmt, (SQLCHAR*)"drop table provider", SQL_NTS);
if(ret<)
{
std::cout << "drop table provider error." << std::endl;
return -;
} std::cout << "done!" << std::endl;
return ;
}

[solaris]odbc-oracle,简单测试的更多相关文章

  1. ORACLE 数据库简单测试

    ORACLE 数据库简单测试 操作系统:Windows 7 – ORACLE:oracle database 10.2.0.4 一.目的 测试 启动监听程序.数据库  非同一个用户的情况,用户是否可以 ...

  2. Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)

    <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)> <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)> 目的:指导项 ...

  3. Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)

    <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(上)> <Oracle简单常用的数据泵导出导入(expdp/impdp)命令举例(下)> 目的:指导项 ...

  4. Oracle DG测试failover和后续恢复报告

    Oracle DG测试failover和后续恢复报告 一.概述 二.验证过程: 2.1 A库异常关闭 2.2 B库进行failover切换为新主库 2.3 要求C库成为新主库的备库 2.4 要求A库成 ...

  5. [20190423]简单测试latch nowilling等待模式.txt

    [20190423]简单测试latch nowilling等待模式.txt --//我对这个问题的理解就是如果参数willing=0,表示无法获取该latch,直接退出,再寻找类似的latch.--/ ...

  6. [20190211]简单测试端口是否打开.txt

    [20190211]简单测试端口是否打开.txt --//昨天看一个链接,提到如果判断一个端口是否打开可以简单执行如下:--//参考链接:https://dba010.com/2019/02/04/c ...

  7. TODO:Golang UDP连接简单测试慎用Deadline

    TODO:Golang UDP连接简单测试慎用Deadline UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interco ...

  8. .net orm比较之dapper和Entity Framework6的简单测试比较

    .net orm比较之dapper和Entity Framework6的简单测试比较

  9. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试 系列目录 我想测试EF在一百万条数据下的显示时间! ...

  10. Javascript的简单测试环境

    在<JavaScript忍者秘籍>2.4测试条件基础知识中,作者给出了一个精简版的assert和assert组的实现,对于初学者而言,这无疑是一个很好的例子,既让我们得到了一个好用的小工具 ...

随机推荐

  1. [转载]string转化大小写(C++)

    如何将一个字符串转换成大写或者小写?这是字符串匹配中经常需要做的事情,然而C++的Standard Library并没有提供将std::string转成大写和小写的功能,只有在提供将char转成大写( ...

  2. js 函数(function)

    <Javascript高级程序设计第三版> 3.7 函数 1. ECMAScript中的函数在定义时,不必指定是否返回值. 2. 位于return语句之后的任何code都永远不会执行.(之 ...

  3. setTimeout setInterval 带参数的问题

    转载http://www.jb51.net/article/36233.htm 在JS中无论是setTimeout还是setInterval,在使用函数名作为调用句柄时都不能带参数,而在许多场合必须要 ...

  4. Asp.net MVC 之 ActionResult

    Action运行完后,回传的值通过ActionResult 类别或者其衍生的类别操作.ActionResult是一个抽象类,因此,Asp.net MVC 本身就实作了许多不同类型的ActionResu ...

  5. 多个项目使用NET Core

    .NET Core系列 :3 .使用多个项目   通过前面的两篇文章,我们已经知道如何创建新的项目,如何生成并运行我们的应用程序,也知道(大致) project.json 文件中的内容是什么意思.但大 ...

  6. js 获取浏览器内核

    <script language="JavaScript" type="text/javascript">    var browser = {   ...

  7. 解决CentOS(RedHat)中sendmail和sm-client启动慢故障(转)

    Starting sendmail: Starting sm-client: 刚才发了修改主机名那篇文章后,我意外发现重新启动CentOS的时候系统会卡在sendmail和sm-client那里将近3 ...

  8. HDOJ-1007 Quoit Design(最近点对问题)

    http://acm.hdu.edu.cn/showproblem.php?pid=1007 给出n个玩具(抽象为点)的坐标 求套圈的半径 要求最多只能套到一个玩具 实际就是要求最近的两个坐标的距离 ...

  9. Make 命令教程 -- 阮一峰

    摘自http://www.ruanyifeng.com/blog/2015/02/make.html Make 命令教程 作者: 阮一峰 日期: 2015年2月20日 代码变成可执行文件,叫做编译(c ...

  10. Lotto(dfs)

    Lotto Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total Submis ...