Visual C++使用ADO操作SQL最精简例子代码
来源:互联网 发布:android 没有网络提示 编辑:程序博客网 时间:2024/06/06 05:45
已经不使用Visual C++多年了,最近应邀为朋友修改一个现存的VC++操作SQL Server2000的老程序,所以重新回顾了一下基本的代码格式。发布到这里,以便于以后再用到时迅速复习。
1 头文件stdafx.h
// stdafx.h : 标准系统包含文件的包含文件,// 或是经常使用但不常更改的// 特定于项目的包含文件//#pragma once#include "targetver.h"#define WIN32_LEAN_AND_MEAN // 从 Windows 头文件中排除极少使用的信息// Windows 头文件:#include <windows.h>// C 运行时头文件#include <stdlib.h>#include <malloc.h>#include <memory.h>#include <tchar.h>// TODO: 在此处引用程序需要的其他头文件#import "C:/Program Files (x86)/Common Files/System/ado/msado15.dll" no_namespace rename("EOF", "adoEOF") rename("BOF", "FirstOfFile")
2 实现文件adocpp.cpp
// ADOCPP.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"_ConnectionPtr pConnection;_CommandPtr pCmd;_RecordsetPtr pRecord;int _tmain(int argc, _TCHAR* argv[]){CoInitialize(NULL);try{HRESULT hr;//创建连接实例hr = pConnection.CreateInstance("ADODB.Connection");if(SUCCEEDED(hr)){//连接数据库_bstr_t connectStr = "Provider=SQLOLEDB;Data Source=服务器IP;Initial Catalog=数据库名;User ID=用户名;Password=密码";hr = pConnection->Open(connectStr, "", "", adModeUnknown);_variant_t vAffected;_bstr_t sql;//执行查询pRecord = pConnection->Execute("select top 10 * from 表名", &vAffected, adCmdText);//枚举查询结果集_TCHAR buffer[100];_variant_t vID;_variant_t vTitle;while(!pRecord->adoEOF){vID = pRecord->GetCollect(_variant_t((long)0)); //按照序号取列值vTitle = pRecord->GetCollect("列名"); //按照列名称取列值if(vID.vt != NULL){wsprintf(buffer, _T("%d-%s\r\n"), vID.intVal, (LPCWSTR)(_bstr_t)vTitle); //整数,字符串wprintf(buffer);}pRecord->MoveNext();}//执行更新(如果影响行数为0, 不会抛出异常)sql = "update lyb set name='hello' where ID=3";pConnection->Execute(sql, &vAffected, adCmdText);//执行插入sql = "insert into 表名(name, neirong) values('test', 'test')";pConnection->Execute(sql, &vAffected, adCmdText);//执行删除(如果影响行数为0, 不会抛出异常)sql = "delete from lyb where id=20";pConnection->Execute(sql, &vAffected, adCmdText);wsprintf(buffer, _T("%d"), vAffected.intVal);wprintf(buffer);//关闭连接和结果集pRecord->Close();pConnection->Close();}else{printf("ADO组件加载失败");}CoUninitialize();}catch(_com_error e) //SQL系统报错(如语法错误、违反约束),才会产生异常,用户程序逻辑问题,要根据影响行数来判定{MessageBox(NULL,e.Description(), _T("异常"), MB_OK);}return 0;}
- Visual C++使用ADO操作SQL最精简例子代码
- visual basic + SQL Server ADO 精简实例 通讯录
- C#ADO.NET操作数据代码汇总
- VC++使用ADO操作SQL Server数据库
- visual C++使用ADO访问sql server 2000
- C#.NET的Winform程序中使用ADO.NET操作SQL Server数据库
- 【Visual C++】游戏开发笔记二十八 最精简的Direct3D11 Demo筋骨脉络全攻略
- 【Visual C++】游戏开发笔记二十八 最精简的Direct3D11 Demo筋骨脉络全攻略
- 【Visual C++】游戏开发笔记二十八 最精简的Direct3D11 Demo筋骨脉络全攻略
- 【Visual C++】游戏开发笔记二十八 最精简的Direct3D11 Demo筋骨脉络全攻略
- visual c++与sql server 2000数据库进行ADO后台链接的操作
- 最精简的JavaScript鼠标拖动代码
- 最精简的JavaScript鼠标拖动代码
- 返回顶部,最精简代码,带注释
- 最精简验证码生产代码
- TestComplete,ADO.NET使用例子
- CUDA C 最精简的标准格式
- 使用ADO连接ACCESS和SQL SERVER数据库[C++]
- eclipse控制流重定向
- 易语言版本更新
- 解决VMWare 安装时 “unable to find ...bootstrap.lua ”
- doc.install.mplayer.@ubuntu12.04
- Ubuntu 中软件的安装、卸载以及查看的方法总结
- Visual C++使用ADO操作SQL最精简例子代码
- nyoj-400-I'll play a trick on you
- iphone传送门
- 字符串与指针,数组名
- Microsoft Windows数据的对齐
- 教你如何成为数据科学家(一)
- 哈希(Hash)与加密(Encrypt)的基本原理、区别及工程应用
- C++中的new、operator new与placement new
- QQ互联登录PHP-SDK invalid openid错误—解决方法