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 的相关文章

  • 用 C# 启动 Windows 服务

    我想启动一个刚刚安装的Windows服务 ServiceBase ServicesToRun if bool Parse System Configuration ConfigurationManager AppSettings RunSe
  • 中间件 API 的最佳实践是什么? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们正在开发一个中间件 SDK 采用 C 和 Java 语言 供游戏开发人员 动画软件开发人员 阿凡达开
  • 同步执行异步函数

    我对此主题进行了大量搜索 并且阅读了本网站上有关此主题的大部分帖子 但是我仍然感到困惑 我需要一个直接的答案 这是我的情况 我有一个已建立的 Winform 应用程序 但无法使其全部 异步 我现在被迫使用一个全部编写为异步函数的外部库 在我
  • 泛型与接口的实际优势

    在这种情况下 使用泛型与接口的实际优势是什么 void MyMethod IFoo f void MyMethod
  • 我们如何将数据从一个打开的表单传递到另一个打开的表单?

    winform中如何将数据从一个窗体传递到另一个打开的窗体 在 Windows 应用程序中 一个窗体打开另一个窗体 当我在父表单中输入一些数据时 这些数据将立即反映在另一个子表单中 这将如何发生 取决于你想要多花哨 最简单的方法就是直接调用
  • 如何“杀死”Pthread?

    我正在学习 Pthreads 并且想知道杀死这样一个对象的最佳方法是什么 在寻找类似的问题后 我无法找到 明确 的答案 但请随时向我指出任何相关问题 我正在使用一个小型客户端服务器应用程序 其中服务器主线程正在侦听套接字上的客户端连接 每次
  • 基于 MS Bot Framework 中的响应分支对话框/表单

    我们正在尝试使用 MS Bot Framework 但尚未完全弄清楚如何实现此场景 我们有一个 LUIS 对话框 类型 它工作正常并且经过适当的培训 以常见的三明治为例 LUIS 意图寻找的基本内容是用户询问订单状态 如果问题中提供了订单号
  • Entity Framework 4.1 RC:Code First EntityTypeConfiguration 继承问题

    我尝试使用通用的 EntityTypeConfiguration 类来配置所有实体的主键 以便每个派生的配置类不会重复自身 我的所有实体都实现一个公共接口 IEntity 它表示每个实体必须有一个 int 类型的 Id 属性 我的配置基类如
  • C++ 中的 Java ArrayList [重复]

    这个问题在这里已经有答案了 在Java中我可以做 List
  • 使用成员作为实现者来实现接口

    我有实现 IA 的 A 类 现在我需要创建也应该实现 IA 的类 B B 类有 A 类的实例作为成员 有什么方法可以定义A的实例实现B类中的IA吗 interfase IA void method1 void method2 void me
  • C 中“for”循环中的两个变量

    我正在编写一些代码 需要在其中使用两个变量for环形 下面的代码看起来没问题吗 它确实给了我预期的结果 for loop 1 offset loop 2 offset 2 loop 1 gt offset 190 loop 2 lt 190
  • 控制器中的异常处理 (ASP.NET MVC)

    当您自己的代码抛出异常并从控制器中的操作调用时 应该如何处理 我看到很多最佳实践的例子 其中根本没有 try catch 语句 例如 从存储库访问数据 public ViewResult Index IList
  • 套接字:监听积压并接受

    listen sock backlog 在我看来 参数backlog限制连接数量 这是我的测试代码 server initialize the sockaddr of server server sin family AF INET ser
  • 使用互斥锁来阻止临界区外部的执行

    我不确定我的术语是否正确 但这里是 我有一个由多个线程使用的函数来写入数据 在注释中使用伪代码来说明我想要的内容 these are initiated in the constructor int data std atomic
  • Qt:将拖放委托给子级的最佳方式

    我在 QWidget 上使用拖放 我重新实现了 DragEnterEvent dragLeaveEvent dragMoveEvent 和 dropEvent 效果很好 在我的 QWidget 中 我有其他 QWidget 子级 我希望它们
  • 我应该使用多个 HttpClient 来进行批量异步 GET 请求吗?

    我有一个场景 我需要在尽可能短的时间内发出大量 GET 请求 想想大约 1000 个 我知道通常最好保留一个客户端并尽可能重用它 Create Single HTTP Client HttpClient client new HttpCli
  • 如何将 Metro 应用部署到桌面?

    我正在尝试将我的 C 应用程序部署到我的 Windows 8 Metro 桌面 我可以在 bin 文件夹中看到部署的文件 但是当我尝试打开它们时 出现以下错误 该应用程序只能在 AppContainer 的上下文中运行 我检查了属性上下文菜
  • 在类中使用 std::chrono::high_resolution_clock 播种 std::mt19937 的正确方法是什么?

    首先 大家好 这是我在这里提出的第一个问题 所以我希望我没有搞砸 在写这篇文章之前我用谷歌搜索了很多 我对编码 C 很陌生 我正在自学 考虑到有人告诉我 只为任何随机引擎播种一次是一个很好的做法 我在这里可能是错的 什么是正确 最佳 更有效
  • 使用 Spring Boot 的 Flyway Core 给出错误 'delayedFlywayInitializer' 和 'entityManagerFactory' 之间的循环依赖关系

    我想在 SQL Server 数据库上导入一些数据 我使用的是 Spring Boot 2 3 4 我还使用 Hibernate 来生成表 我在pom中添加了flyway核心
  • 具有多种类型的 C# 泛型类型推断

    我有以下通用方法 用于将一种类型的输入对象序列化为超类型 如下所示 public string SerialiseAs

随机推荐

  • 时间序列预测之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