C++连接sqlserver

2023-11-19

项目结构

ConsoleApplication.cpp

#include <iostream>
using namespace std;

#include <stdio.h>
#define OTL_ODBC_MSSQL_2008 
#include "..\c++_otlv4/otlv4_h2/otlv4.h"

otl_connect db; // connect object

void insert(void)
// insert rows into table
{
	otl_stream o(100, 
		"insert into test_tab values(:f1<int>,:f2<char[31]>,:f3<char[31]>,:f4<char[31]>,:f5<char[31]>)",
		db 
	);

	o.set_commit(0); // set stream's auto-commit to OFF.

	try {
	/*	o << 1 << "Line1"; 
		o.flush(); 

		otl_write_row(o, 1, "Line1");
		o.flush();*/

		for (int i = 1; i <= 100000; ++i) {
			o << i << "你爱打不打断打实大" << "2775275" << "fsdfdfs" << "你爱打算打实打实大";
		}
	}
	catch (otl_exception& p) {
		if (p.code == 2601) {
			// ... duplicate key ...
			cout << "STREAM ERROR STATE=" << o.get_error_state() << endl;
			o.clean(1); 
		}
		else
			throw; // re-throw the exception to the outer catch block.
	}
	/*o << 2 << "Line2"; 
	o.flush();*/

	db.commit(); // commit transaction
}

void select(void)
{
	otl_stream i(10, // buffer size
		"select * from test_tab",
		// SELECT statement
		db // connect object
	);
	// create select stream

	int f1;
	char f2[31];

	for (auto& it : i) {
		otl_read_row(it, f1, f2);
		cout << "f1=" << f1 << ", f2=" << f2 << endl;
	}
}
int main()
{
	otl_connect::otl_initialize(); // initialize ODBC environment

	DWORD   start, end;  //定义程序运行开始时间和结束时间
	start = GetTickCount64();  //设定开始时间

	cout << "开始";
	try {

		db.rlogon("driver=sql server;server=192.168.1.104;UID=sa;PWD=123;database=Test"); // connect to ODBC

		otl_cursor::direct_exec
		(
			db,
			"drop table test_tab",
			otl_exception::disabled // disable OTL exceptions
		); // drop table

		otl_cursor::direct_exec
		(
			db,
			"create table test_tab(f1 int, f2 varchar(30), f3 varchar(30), f4 varchar(30), f5 varchar(30))"
		);  // create table

		insert(); // insert records into table
		//select(); // select records from table

	}
	catch (otl_exception& p) { // intercept OTL exceptions
		cerr << p.msg << endl; // print out error message
		cerr << p.stm_text << endl; // print out SQL that caused the error
		cerr << p.sqlstate << endl; // print out SQLSTATE message
		cerr << p.var_info << endl; // print out the variable that caused the error
	}

	db.logoff(); // disconnect from Oracle

	end = GetTickCount64();
	cout << "use time:   " << (end - start)/1000.00<<"秒" << endl;

	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++连接sqlserver 的相关文章

随机推荐

  • 时间序列预测之ARMA、ARIMA序列及季节性序列matlab实现

    ARMA是一种平稳时间序列模型 即均值和协方差不随时间的平移而改变 ARMA有三种类型 AR序列 MA序列 ARMA序列 但是由于ARMA只能处理平稳序列 而现实中的问题往往有趋势性或周期性等 为了得到平稳序列 我们对数据进行差分运算 使得
  • 【编辑器】UnityConsole界面双击日志跳转

    环境 发布正式包时 Unity的原生Log肯定是要屏蔽的 最常用的做法就是自己封装一下 实现一个debug 不过这样的话 双击跳转就会去到Debug类里面去 为了方便查bug 实现一下日志跳转 实现 看了一下网上的资料 思路应该就是通过类型
  • 【系统移植】开发板的启动过程(认识uboot)

    在系统移植之前 需要先了解开发板启动的大致流程 了解了大致流程后 才知道开发板启动需要哪些东西 了解开发板启动的时候 一定会遇到闻所未闻的东西 所以我们了解的顺序是 了解开发板启动时涉及到的部件 了解启动过程中涉及到的文件 uboot 内核
  • msfvenom生成各种Payload命令

    msfvenom生成各种Payload命令 msfvenom l 列出所有模块 攻击载荷 Binaries linux msfvenom p linux x86 meterpreter reverse tcp LHOST
  • Ubuntu 安装配置NFS网络文件系统服务器(详细)

    现在我的电脑连接情况 Ubuntu 安装配置NFS服务器 一 安装NFS服务器1 1 安装Ubuntu nfs服务器端 sudo apt get install nfs kernel server 很显然 我已经安装过了 继续往下走 1 2
  • 从零开始刷题1

    又一道简单等级的题 小白打小怪 最大时间 给定一个由 4 位数字组成的数组 返回可以设置的符合 24 小时制的最大时间 最小的 24 小时制时间是 00 00 而最大的是 23 59 从 00 00 午夜 开始算起 过得越久 时间越大 以长
  • 网络编程是什么

    转载 http peixun eol cn company company article detail php articleid 15033 对于初学者 或者没有接触过网络编程的程序员 会觉得网络编程涉及的知识很高深 很难 其实这是一种
  • 【数据结构】堆、栈的区别

    heap 是堆 stack 是栈 在编程语言中 内存分配方式主要包括 栈 堆 静态存储分配 栈的内存是由操作系统自动分配 释放的 存放函数的参数值 局部变量等 堆的内存是由程序员手动申请和释放的 对应C语言中的malloc函数和C 中的ne
  • 服务器意外重启后redis启动失败或无法连接的问题解决办法

    今天开发服务器因机房断电重启了 然后发现所有的PHP接口都报错 session write close Failed to write session data using user defined save handler session
  • 【C++自我精讲】基础系列四 static

    C 自我精讲 基础系列四 static 0 前言 变量的存储类型 存储类型按变量的生存期划分 分动态存储方式和静态存储方式 1 动态存储方式的变量 生存期为变量所在的作用域 即程序运行到此变量时才为其分配存储空间 作用域结束时 会自动收回为
  • 企业支付宝白名单和数字娱乐线上接口解析。

    企业支付宝白名单 企业支付宝白名单是指企业在支付宝平台上享受更多支付和服务权限的一种认证机制 通过加入支付宝白名单 企业可以获得更高的交易额度 更灵活的支付功能和更便捷的服务 具体来说 企业支付宝白名单的好处包括 提升支付额度 白名单企业可
  • unzip命令常用参数

    1 l 显示压缩文件内所包含的文件 2 t 检查压缩文件是否正确 3 o 不必先询问用户 unzip执行后覆盖原有的文件 4 n 解压缩时不要覆盖原有的文件 5 q 执行时不显示任何信息 6 d lt 目录 gt 指定文件解压缩后所要存储的
  • redis进行set操作时异常总结

    事情经过 项目中使用redis 环境进行过一次网络迁移 之后就无法拿到redis连接 1 先通过ping命令排除网络原因 其实这里建议使用 telnet 命令 格式 telnet ip port 不仅能排查网络是否连通并且知道改端口号是否能
  • PTA-ASCII码实战

    给出一系列字符 有大小写英文字母和其他一些字符 仅涉及ASCII打印字符 即ASCII码值 gt 32 现在想让你鉴别以下这些字符 如果是英文字母则输出其ASCII码值 否则输出 illegal 不包含引号 输入格式 第一行一个整数N 0
  • 详解Singleton、Factory、Strategy在项目中的应用

    一 前言 前几天阅读一框架文档 里面有一段这样的描述 从对象工厂中 促使写下本文 尽管一些模式简单和简单 但是常用 有用 结合最近一个项目场景回顾一下里面应用到的一些模式 Singleton Factory Strategy Singlet
  • pm2的的使用(基础)

    技术背景 相信大家都有这样一个烦恼 自己写了一个服务 并且通过cmd面板开启了这个服务 可是 当你关掉cmd命令行面板的时候 你会发现你的服务也跟着停止了 这种现象是我们不想要的 所以 诞生了一种技术 pm2服务持久化管理 技术的简单使用
  • SQL主键与外键的创建与解析

    一个表中 会存很多条记录 需要一个列来位置标识一条数据 1 主键 唯一标识一条数据 值不能为空 不能重复 标识列 一旦将一个列设置成标识列 它就不能再手动输入值 是插入数据时自动生成的 这个列的类型必须的不带小数的数值型 整型 标识列的标识
  • 利用搜索关键字爬取今日头条新闻评论信息案例

    利用搜索关键字爬取今日头条新闻评论信息案例 爬虫4步骤 1 分析网页 2 对网页发送请求 获取响应 3 提取解析数据 4 保存数据 本案例所用到的模块 import requests import time import csv 案例网址
  • centos 添加路由命令_centos路由添加route命令

    方法一 添加路由 route add net 192 168 0 0 24 gw 192 168 0 1 route add host 192 168 1 1 dev 192 168 0 1 删除路由 route del net 192 1
  • C++连接sqlserver

    项目结构 ConsoleApplication cpp include