纯C++ 连接SQL Server2005 数据库读写操作的小例子
一个测试c++链接 sql server 数据库的例子
// 数据库说明
// 数据库用户为 sa , 密码为 空
// 数据库为 MyDB
// 表为 UserInfo
// 表字段为 Name 、 PassWd 、ID
// TestSQL.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#import "c:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "EndOfFile")
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
// 初始化COM接口
CoInitialize(NULL);
// _RecordsetPtr智能指针,可以用来打开库内数据表,并可以对表内的记录、字段等进行各种操作
_RecordsetPtr m_pRecordset("ADODB.Recordset");//定义记录集对象
// _ConnectionPtr智能指针,通常用于打开、关闭一个库连接或用它的Execute方法来执行一个不返回结果的命令语句
_ConnectionPtr m_pConnection("ADODB.Connection");//定义数据库连接对象
try
{
// 创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置连接字符串,若数据库在网络上则Server为形如(192.168.253.253,3340)
_bstr_t strConnect = "Provider=SQLOLEDB; Server=Localhost; Database=MyDB; uid=sa; pwd=;";
// 建立与服务器连接
m_pConnection->Open(strConnect,"","",adModeUnknown);
if (m_pConnection ==NULL)
{
cerr<<"Lind data ERROR!\n";
}
m_pRecordset.CreateInstance(__uuidof(Recordset));//创建记录集对象
//取得表中的记录
_bstr_t bstrSQL("select *from UserInfo");//查询语句
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
_variant_t vsnum, vsName,vsPassWd, vsID,vsmajor;//对应库中的snum,sname,sage,ssex,smajor
cout<<"姓名 密码 ID\n";
cout<<"-------------------------------------------\n";
while (!m_pRecordset->EndOfFile)
{
vsName= m_pRecordset->GetCollect("Name");
vsPassWd= m_pRecordset->GetCollect("PassWd");
vsID= m_pRecordset->GetCollect("ID");
if (vsnum.vt !=VT_NULL && vsName.vt !=VT_NULL&& vsPassWd.vt!=VT_NULL && vsID.vt != VT_NULL&& vsmajor.vt!=VT_NULL)
{
cout.setf(ios::left);
cout<<setw(14) <<(char*)(_bstr_t)vsName;
cout<<setw(14) <<(char*)(_bstr_t)vsPassWd;
cout<<setw(14) <<(char*)(_bstr_t)vsID;
cout.unsetf(ios::left);
cout<<endl;
}
//移动下一条记录
m_pRecordset->MoveNext();
}
cout<<"\n------------------------------------------\n";
//用Execute执行sql语句来创建表
m_pConnection->Execute("CREATE TABLE Employee(EmID INTEGER,EmName TEXT,EmAge INTEGER,EmBirthday DATETIME)", NULL, adCmdText);
m_pRecordset->Close();//关闭记录集
}
catch (_com_error e)
{
e.Description();//抛出异常
}
if (m_pConnection->State)
{
m_pConnection->Close();
}
::CoUninitialize();
return 0;
}
纯C++ 连接SQL Server2005 数据库读写操作的小例子的更多相关文章
- c#vs连接SQL sever数据库入门操作
对于需要连接数据库的项目,可以参考的简单初级代码.实现打开数据库,读入数据功能 using System; using System.Collections.Generic; using System ...
- 详解连接SQL Server数据库的方法,并使用Statement接口实现对数据库的增删改操作
总结一下,连接SQL Server数据库需要以下几个步骤: 1. 导入驱动Jar包:sqljdbc.jar 2. 加载并注册驱动程序 3. 设置连接路径 4. 加载并注册驱动 5. 连接数据库 6. ...
- Python 学习 第17篇:从SQL Server数据库读写数据
在Python语言中,从SQL Server数据库读写数据,通常情况下,都是使用sqlalchemy 包和 pymssql 包的组合,这是因为大多数数据处理程序都需要用到DataFrame对象,它内置 ...
- python 使用pymssql连接sql server数据库
python 使用pymssql连接sql server数据库 #coding=utf-8 #!/usr/bin/env python#------------------------------ ...
- JDBC连接sql server数据库及其它
JDBC连接sql server数据库的步骤如下: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的 ...
- ThinkPHP连接sql server数据库
亲身经历,在网上找连接sql server数据库的方法,还是不好找的,大多数都是照抄一个人的,而这个人的又写的不全,呵呵,先介绍一下我连接的方法吧.如果你是用THINKPHP连接,那么最重要的就是配置 ...
- JDBC连接sql server数据库的详细步骤和代码
JDBC连接sql server数据库的详细步骤和代码 JDBC连接sql server数据库的步骤如下: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Ja ...
- python连接sql server数据库实现增删改查
简述 python连接微软的sql server数据库用的第三方模块叫做pymssql(document:http://www.pymssql.org/en/stable/index.html).在官 ...
- Java使用JDBC连接SQL Server数据库|实现学生成绩信息系统
Java实验四 JDBC 使用SQL Server数据库或者MySQL数据库各自的客户端工具,完成如下任务: (1)创建数据库students: (2)在数据students中创建表scores,包括 ...
随机推荐
- git 记录
在官网有详细的教程http://git-scm.com/book/zh/%E8%B5%B7%E6%AD%A5 查看分支和日志的两个工具:gitk 和 tig ,两个都有 --all 参数,可以查看所有 ...
- mvc bundle功能(1)
现如今都提倡敏捷开发,快速开发,但是再要求速度的同时,还得保证质量!前端我是没办法,毕竟是直接要面向用户的,但是后台,解决方案那就多了,诸如extjs,bootstrap,kendoui,都可以解决. ...
- [Hive优化] 之 MapJoin
根据mapjoin的计算原理,MAPJION会把小表全部读入内存中,在map阶段直接拿另外一个表的数据和内存中表数据做匹配.这种情况下即使笛卡尔积也不会对任务运行速度造成太大的效率影响. mapjoi ...
- JavaFx版本植物大战僵尸
http://www.cnblogs.com/lslvxy/archive/2013/04/17/3026711.html —————————————————————————————————————— ...
- JS代码格式化修改表格的数值的格式
今天在cognos中第一次需要用到JS,主要是报表页面展示的时候是可能得到如下的数据 ,我需要对其中类型中有金额字样的,后面的数值,精确2位小数:有百分比字样的,数值显示成百分比.如下. 我先尝试了自 ...
- HDU 5776 sum (模拟)
sum 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5776 Description Given a sequence, you're asked ...
- CodeForces 173C Spiral Maximum (想法、模拟)
Spiral Maximum Time Limit:3000MS Memory Limit:262144KB 64bit IO Format:%I64d & %I64u Sub ...
- JavaIO(04)字符流--Writer and Reader
字符流: 常识:在java中一个字符等于两个字节: 操作字符流的两个类:Writer,Reader API文档介绍(Writer): public abstract class Write ...
- HDU 1068 Girls and Boys (二分图最大独立集)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1068 有n个同学,格式ni:(m) n1 n2 n3表示同学ni有缘与n1,n2,n3成为情侣,求集合 ...
- 第三方类AFNetworking
1.AFNetworking简介 AFNetworking是一个在iOS开发中使用非常多的轻量级网络开源库适用于iOS以及Mac OS X.它构建于在(Apple iOS开发文档) NSURLConn ...