zoukankan      html  css  js  c++  java
  • ADO:连接,执行语句与关闭(sql server数据库)

    一,身份验证:

    sql server数据库连接身份验证有两种:windows身份验证和SQL Server身份验证

    windows验证:是使用windows的安全子系统对用户连接进行有效性验证。(个人认为是windows操作系统帮我们验证用户安全性,默认windows管理员为数据库的管理员,可以进行一切操作,但是也可以自己设定数据库的管理员)

    sql server验证:需要提供用户名和密码,默认的用户名为sa,但是可以更改。

    二,数据库连接:

    1.导入msado15.dll文件(在c盘中查找)

    在头文件中或stdafx.h文件中导入就可使用,不需要导入相应的类的头文件(这点与word组件不同)

    2.创建连接对象和记录集对象

    _ConnectionPtr pConn;

    pConn.CreateInstance("ADODB.Connection");//后面字符串不区分大小写

    _RecordSetPtr pRecordSet;

    pRecordSet.CreateInstace("adodb.connection");

    三、连接字符串(所有连接字符串均不区分大小写,键和值都不区分):

    Provider=SQLOLEDB.1//该键用于表明提供数据库服务的数据库类型,不同的数据库该值是不一样的。其它类型请参考:http://www.w3school.com.cn/ado/prop_conn_provider.asp

    Integrated Security/Trusted=True[Yes,No,False,SSPI]//该键为Yes,Ture或者SSPI时表示使用windows登陆方式,此时不需要提供uid和pwd。否则为sql登陆方式,默认为False。sql登陆必须提供User ID和password。

    Persist Security Info=False[True]//当为False时,与上面的键配合使用可以提高连接安全性

    Workstation ID=computername[(local)] //表示数据库所在的工作站名称,默认值为本地计算机名称

    Data Source/Server/Address/Addr/Network Address=(local)//该键表示服务器的名称,五者是一样的,根据情况使用其一

    Initial Catalog/Database=databasename//该键表示数据库名称(数据库集合组成服务器),二者是一样的

    User ID/Uid=username//使用sql登陆时的登陆名

    Password/Pwd=password//使用sql登陆时的密码

    其它键值请参考:https://www.cnblogs.com/niuyjdz/p/7533439.html

    四、连接数据库的Open()函数的四个参数:

    对于多次访问数据库,使用_ConnectionPtr.Open()打开数据库;对于一次访问,只需要 使用_CommandPtr或者_RecordSetPtr连接即可。

    _ConnectionPtr.Open(_bstr_t(connectionstr),_bstr_t(username),_bstr_t(pwd),option)//后三个参数不是必须的,都有默认值

    参数1:连接字符串,至少必须包含服务器,数据库参数,当使用该对象的ConnectionString属性时,该参数可为“”空,此时不必转化成_bstr_t类型,否则必须转化成该类型;

    参数2,参数3:采用sql sever方式登陆时,所需要的用户名和密码,若在参数1中提供,则可以为空。

    参数3:表示同步或异步返回。adConnectUnspecified表示连接后返回,即同步;adAsyncConnect表示异步返回,未连接情况下也返回。默认值为同步。

    五、执行sql语句

    1.Execute方法(仅_ConnectionPtr和_CommandPtr有该方法)

    _RecordSetPtr Execute(_bstr_t cmdtext,_variant_t* recordeffected,options)

    返回值:为一个记录集,非常有用。

    参数1:sql语句,必须转化成_bstr_t格式

    参数2:返回一个指针,值为该语句所影响的行数,可省略

    参数3:表示如何解读参数1,一般为AdCmdText,可省略,默认值也是该值。

    2.Open方法(_RecordSetPtr执行命令使用的方法)

    _RecordSetPtr rs;

    rs.CreateInstance("adodb.recordset");

    rs.Open(cmdText,_variant_t((IDispatch*)pConnection)),adOpenKeyset,adLockOptimistic,adCmdText);

    参数1:sql命令

    参数2:打开数据库通道的那个_ConnectionPtr的指针

    参数2:游标的类型,由记录集的CursorType属性设置或获取。

    参数3:打开记录集后使用的锁定类型。由LockType属性设置或获取。反映游标编辑后的更新方式(立即更新还是延后更新)

    参数4:解析sql命令的方式

    六、关闭数据库Close():

    该三个对象用完之后需要调用Close()函数进行关闭,会调用Release()释放资源。

    也可以调用Release();该release()是对接口进行释放。

    也可以不调用,因为是智能指针,在智能指针析构时会自动释放。

  • 相关阅读:
    关于Lua中的面向对象实现
    当我读《体验引擎:游戏设计全景探秘》时我在想什么
    【Unity】拖动图片生成对应Image
    【Unity】阅读LuaFramework_UGUI的一种方法
    【Unity】关于VS条件编译符号
    Lua元表应用举例:配置表格转为Lua配置表
    对文件夹下的git项目进行批量更新、打包
    二分查找
    python-变量及字符串赋值|今日所学-2017-12-26
    lamda- filter,map, collect
  • 原文地址:https://www.cnblogs.com/zhuluqing/p/9059932.html
Copyright © 2011-2022 走看看