QQ登录

只需一步,快速开始

251上位机VC MFC使用SQL Connect函数连接SQL Server

[ 复制链接 ]

251上位机VC MFC使用SQL Connect函数连接SQL Server

251上位机VC MFC使用SQL Connect函数连接SQL Server

251上位机VC MFC使用SQL Connect函数连接SQL Server
功能展示
VC提供了多种多样的数据库访问技术--ODBC API,MFC ODBC,DAO,OLE DBADO等等,不同的技术有不同的特点,这些技术都提供了简单灵活访问速度快及可扩展性好的服务特点。当前例程通过ODBC API函数连接访问数据库,点击按钮,例程会与指定的数据库连接,并将执行函数的返回值显示出来,效果如图
要点提示
一。ODBC即OPEN DATABASE CONNECTIVITY(开放数据库连接)提供了一个通用的编程接口,允许程序与多种不同的数据库连接,为oracle ,sql server等提供了驱动程序,用户可以使用SQL语句进数据库进行直接的低层操作。在我们使用ODBC API函数创建数据库应用程序时,得引入头文件sql.h,sqlext.h,sqltypes.h及库文件odbc32.lib. 部分文件在我们的编辑软件如VC6.0都有提供,所以编写程序时选择性包含进工程;
一般有基本的五个步骤:
1,分配 ODBC环境,使一些内部结构初始化,完成这一步得分配 一个SQLHENV类型的变量在ODBC环境中做句柄使用;
2,为将要使用的一个数据源分配 一个连接句柄,由函数SQLAllocHandle完成;
3,使用SQLConnect函数把连接句柄与数据库连接起来,连接前可通过函数SQLSetConnectAttr设置连接属性
4,进行SQL语句的操作,完成后用户得到想要的结果,可 以取消与数据库的连接;
5,最后是释放先前创建的句柄
当前例程演示使用SQL Connect API函数连接SQL Server,关键用到一函数SQLConnect()进行连接.
SQLConnect()函数原型为SQLRETURN SQLConnect(SQLHDBCConnectionHandle,
SQLCHAR *ServerName,SQLSMALLINTNameLength1,
SQLCHAR *UserName,SQLSMALLINTNameLength2,
SQLCHAR *Authentication,SQLSMALLINTNameLength3);
nnectionHandle为连接句柄
ServerName为数据源名称
NameLength1为数据源名称长度
UserName为用户ID
NameLength2为用户ID长度
Authentication为用户密码
NameLength3 为用户密码长度
返回值为SQL_SUCCESS,SQL_SUCCESS_WITH_INFO, SQL_ERROR, SQL_INVALID_HANDLE,可以查阅MSDN手册;
二。应用程序访问一个数据库前,首先得用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置,类型及ODBC驱动信息,建立起与具体的数据库的联系;
ODBC管理器为WINDOWS2000后系统的系统软件,设置为:1.控制面板->ODBC,2.打开ODBC数据源管理器;选择USER DSN(用户DSN)选项,3.点击左侧添加按钮,在弹出的对话框选择驱动类型,例程选择为access driver,点击完成。4.在弹出的对话框添加数据源名称(随意),描述(随意),再点击选择,选择数据库文件;完成,数据库文件由第三方法数据管理软件 创建,使用时我们就知晓基用户名及密码;
ODBC管理器的具体设置可进一步观看视频教程
实现功能
1.新建基于对话框的应用程序
2.拖拽一按钮<使用SQLConnect函数连接SQL Server>及列表控件其Id为IDC_LIST1;
按钮关联函数
  1. void CGkbc8Dlg::OnConnect()
  2. {
  3.         CString sText;
  4.         CListCtrl *pList = (CListCtrl*)GetDlgItem(IDC_LIST1);

  5.         SQLHENV hEnv;
  6.         SQLHDBC hDbc;
  7.         SQLHSTMT hStmt;
  8.         SQLRETURN ReturnCode;
  9. //<>
  10.         ReturnCode = SQLAllocHandle(SQL_HANDLE_ENV,SQL_NULL_HANDLE,&hEnv);//分配环境句柄
  11.         sText.Format("%d",ReturnCode);
  12.         SetListText("SQLAllocHandle(SQL_HANDLE_ENV",sText);
  13.         if(ReturnCode!=SQL_SUCCESS && ReturnCode!=SQL_SUCCESS_WITH_INFO)//分配失败则返回
  14.                 return ;
  15. //<>
  16.         ReturnCode = SQLSetEnvAttr(hEnv,SQL_ATTR_ODBC_VERSION,(void*)SQL_OV_ODBC3,0);//设置ODBC环境属性
  17.         sText.Format("%d",ReturnCode);
  18.         SetListText("SQLSetEnvAttr(hEnv,SQL_ATTR_ODBC_VERSION",sText);
  19.         if(ReturnCode!=SQL_SUCCESS && ReturnCode!=SQL_SUCCESS_WITH_INFO)
  20.                 return ;
  21. //<>
  22.         ReturnCode = SQLAllocHandle(SQL_HANDLE_DBC,hEnv,&hDbc);//分配联接句柄
  23.         sText.Format("%d",ReturnCode);
  24.         SetListText("SQLAllocHandle(SQL_HANDLE_DBC",sText);
复制代码
  1. if(ReturnCode!=SQL_SUCCESS && ReturnCode!=SQL_SUCCESS_WITH_INFO)
  2.                 return ;
  3. //<>
  4.         SQLSetConnectAttr(hDbc,SQL_LOGIN_TIMEOUT,(void*)10,0);//设置登录超时时间为10秒
  5.         ReturnCode = SQLConnect(hDbc, //连接到数据源
  6.                 (SQLCHAR*)"gkbc8",SQL_NTS, //数据源名称及名称长度
  7.                 (SQLCHAR*)"admin",SQL_NTS, //用户ID
  8.                 (SQLCHAR*)"",SQL_NTS); //用户密码
  9.         sText.Format("%d",ReturnCode);
  10.         SetListText("SQLConnect(hDbc",sText);
  11.         if(ReturnCode!=SQL_SUCCESS && ReturnCode!=SQL_SUCCESS_WITH_INFO)
  12.                 return ;
  13. //<>
  14.         ReturnCode = SQLAllocHandle(SQL_HANDLE_STMT,hDbc,&hStmt);//分配语句句柄
  15.         sText.Format("%d",ReturnCode);
  16.         SetListText("SQLAllocHandle(SQL_HANDLE_STMT",sText);
  17.         if(ReturnCode ==SQL_SUCCESS || ReturnCode ==SQL_SUCCESS_WITH_INFO)
  18.         {
  19.                 //在此处理数据
  20.                 SQLFreeHandle(SQL_HANDLE_STMT,hStmt);
  21.         }
  22.         SQLDisconnect(hDbc);//断开数据连接
  23.         SQLFreeHandle(SQL_HANDLE_DBC,hDbc);//释放句柄
  24.         SQLFreeHandle(SQL_HANDLE_ENV,hEnv);
  25. }
复制代码
3.添加数据库函数头文件及一个自定义函数void SetListText(CStringsText1,CString sText2);
#include <sqlext.h>
#pragma comment(lib,"odbc32.lib")
我们来演示下功能实现的整个过程
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:251.上位机VC MFC使用SQL Connect函数连接SQL Server.zip 
文件大小:551.71 KB  售价:10金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

您的支持是我们创作的动力!  

  

您可花点闲钱积分自助任意充值

  

成为VIP会员 全站资源任意下载永久更新!



回复

使用道具 举报

大神点评(1)

快速回复 返回列表 客服中心 搜索