vc6.0 通过ADO(udl)连接sql 2008
转载声明:本文转自http://blog.sina.com.cn/s/blog_7328b9dd0100pkbw.html茗之的博客
首先声明:本文是针对vc与sql菜鸟的,高人请让路。
本文讲解了用ADO技术连接VC6.0与sql2008(sql2000也一样)。
1.首先在vc6.0中新建一个基于对话框的应用程序,其他选项均为默认。本例中名称为Rent。(如果有问题请看vc教程)
2.在Rent项目的文件夹里建立一个udl文件。
步骤:(1)新建一个txt文件。
(2)把后缀名改为udl,并重命名。本例中用my_data1.udl
(3)双击m_data1.udl设置连接属性,如下图。
其中服务器输入本地的sql服务器即可。数据库选择要连接的数据库。
配置好后可以点“测试连接”按钮来测试是否连接成功。
3.配置好了udl文件后就可以在vc中来连接数据库了。
具体步骤:(1)引入ADO动态链接库。方法如下:在Rent工程的StdAfx.h头文件中添加如下代码:
#import"c:\program files\common files\system\ado\msado15.dll" no_namespace rename ("EOF","adoEOF")
此处有2点要注意:1):此代码必须在一行里面。
2):不能添加到头文件的第一行,不然会报错。(笔者添加到了最后一行)
(2)初始化COM库环境。(因为ADO是基于COM库的,所以要初始化COM库环境)
1):在CRentapp的成员函数InitInstance()中添加如下代码:
::CoInitialize(NULL);//初始化COM库
2):在CRentapp中添加虚函数ExitInstance(),在其中添加如下代码:
::CoUninitialize();//清除COM库
(3)建立连接:
1):在CRentDlg类中添加一个_ConnectionPtr接口类型的成员变量
protected:
_ConnectionPtr m_pConnection;
2):在CRentDlg类的OnInitDialog()函数中添加如下代码:
HRESULT hr;
try
{
hr=m_pConnection.CreateInstance(__uuidof(Connection));
if(SUCCEEDED(hr))
{
m_pConnection->ConnectionString="File Name=my_data1.udl";
m_pConnection->ConnectionTimeout=10;
hr = m_pConnection->Open("","","",adConnectUnspecified);
AfxMessageBox("open succceeded!");
if(FAILED(hr))
{
AfxMessageBox("open fail!");
return true;
}
}
else
{
AfxMessageBox("createinstance of Connection fail!");
return true;
}
}
catch(_com_error e)
{
_bstr_t bstrSource (e.Source());
_bstr_t bstrDescription(e.Description());
AfxMessageBox(bstrSource + bstrDescription);
return true;
}
此处有1点需注意:"File Name=my_data1.udl";此句my_data1.udl前面不能有空格,因为书写习惯,有的人会在其前面加上空格,这样会报错。
4.做完了这些,然后编译,执行,就可以连接上数据库了。
个人认为连接数据库比较重要,因为连都连不上还谈何操作,至于后面的对数据库的操作即是添加相应的消息处理代码而已。连接步骤虽然简单,但对于初学者来说还是容易出问题,在此写个个人的连接心得,也算帮助初学者吧。
vc6.0 通过ADO(udl)连接sql 2008的更多相关文章
- vc6.0 使用Ado 连接MS-SqlServer2000 连接字符串
vc6.0 使用Ado 连接MS-SqlServer2000 连接字符串 分类: C/C++ VC 2012-04-12 20:23 836人阅读 评论(0) 收藏 举报 sql server数据库服 ...
- JDBC连接SQL server与ADO.NET连接Sql Server对比
JDBC连接SQL server与ADO.NET连接Sql Server对比 1.JDBC连接SQL server 1)java方面目前有很多驱动能够驱动连接SQL servernet. 主流的有 ...
- [转载]C#中使用ADO.NET连接SQL Server数据库,自动增长字段用作主键,处理事务时的基本方法
问题描述: 假设在数据库中存在以下两张数据表: User表,存放用户的基本信息,基本结构如下所示: 类型 说明 ID_User int 自动增长字段,用作该表的主键 UserName varcha ...
- Java 如何连接 SQL 2008 R2
前提: 1. 复制sqljdbc_auth.dll到C:\Windows\System32这个路径下. 2. 添加sqljdbc4.jar到Libraries里面. 代码示例: import java ...
- C++中用ODBC和ADO方式连接SQL数据库
https://wenku.baidu.com/view/f01e4e762f3f5727a5e9856a561252d380eb2033.html
- 【转】PowerShell 连接SQL Server 数据库 - ADO.NET
转至:http://www.pstips.net/connect-sql-database.html PowerShell 通过ADO.NET连接SQL Server数据库,并执行SQL脚本.工作中整 ...
- SQL 2008无法连接的解决办法
问题: 在从本地客户端连接到SQL 2008的时候出现无法连接的错误.错误信息如下所示:
- SSMS 2005 连接 SQL SERVER 2008问题
用本机的 Microsoft SQL Server Management Studio 2005 客户端连接数据库服务器时报错:"This version of Microsoft SQL ...
- 连接SQL SERVER 2008需要加端口号
VC2010 ADO 连接SQL SERVER 2008,127.0.0.1,1433,要加上端口,否则连不上.注意:地址和端口之间使用逗号隔开. 连接SQL SERVER 2000可以不加端口号,使 ...
随机推荐
- 深入了解 Oracle Flex ASM 及其优点
简介 Oracle Real Application Cluster (RAC) 是 Oracle 解决方案中的一个著名产品,用于保持业务数据的高可用性.Oracle RAC 允许在所有集群节点之间共 ...
- 使用crs_setperm修改RAC资源的所有者及权限
Oracle RAC 集群中,对于各种资源的管理,也存在所有者与权限的问题.crs_getperm与crs_setperm则是这样的一对命令,主要用于查看与修改集群中resource的owner,gr ...
- [Android] 关于系统工具栏和全屏沉浸模式
随着应用程序的一些深入设计,大家总想要更好的界面和体验,所以有些东西并不能只是知道方法就结束了,是得要去深入研究研究的.通过这个过程我觉得,从应用层面来讲,想实现一个功能很简单,但若想实现的好,就要去 ...
- 关于Servlet的PrintWriter 中文乱码问题
ps:servlet的PrintWriter和ServletOutputStream是不能同时使用的,同时使用会抛异常; PrintWriter是字符流.ServletOutputStream是字节流 ...
- N元数组的子数组之和的最大值
题目:有N个整数的元素的一维数组,求子数组中元素之和中最大的一组(思想:动态规划) 分析: 设该数组为array[N], 那么对于array[i]该不该在元素之和最大的那个子数组中呢?首先,不如假设a ...
- 十六进制字符串转化成字符串输出HexToStr(Delphi版、C#版)
//注意:Delphi2010以下版本默认的字符编码是ANSI,VS2010的默认编码是UTF-8,delphi版得到的字符串须经过Utf8ToAnsi()转码才能跟C#版得到的字符串显示结果一致. ...
- TestNG中同一个类中执行多个test()方法如何配置testng.xml
public class IndexInfo extends BaseTesting{ private IndexPage IndexPage1;// private AddEquipmentInfo ...
- 一步步实现Promise
最近在https://github.com/ThoughtWorksInc/rest-rpc上工作,遇到了一个scala隐式转换的问题,简单的说是要实现这么个东西: implicit def json ...
- 初识MFC学习——Hello World
MFC(Microsoft Foundation Classes),是一个微软公司提供的类库(class libraries),以C++类的形式封装了Windows的API,并且包含一个应用程序框架, ...
- 遵守GPL的开源软件能用于商用吗?
遵守GPL的开源软件能用于商用吗? 比较经典的开源协议有 GPL,BSD 等等. GPL 软件可以用于商业用途,甚至说,RMS 撰写 GPL 协议的目的就是为了让自己的 GPL 软件 emacs 可以 ...