VC使用ODBC开发数据库使用总结

VC使用ODBC开发数据库使用总结

ID:42562668

大小:84.00 KB

页数:13页

时间:2019-09-17

VC使用ODBC开发数据库使用总结_第1页
VC使用ODBC开发数据库使用总结_第2页
VC使用ODBC开发数据库使用总结_第3页
VC使用ODBC开发数据库使用总结_第4页
VC使用ODBC开发数据库使用总结_第5页
资源描述:

《VC使用ODBC开发数据库使用总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.        配置数据源在程序中根据用户选择动态配置数据源而不调用ODBC数据源管理器,对于应用程序开发有时是十分必要的。毕竟ODBC数据源管理器对于对数据库不熟悉的用户显的复杂了,且ODBC数据源管理器的界面风格有可能与整个应用程序的界面风格不一致,对于严谨的应用程序开发者来说,这些都是不能容忍的。配置SQLServer数据源时,必须有SQLServer服务器名和服务器中的目标数据库名(否则打开该数据源时,就会弹出配置数据源对话框或失败)。这与配置Access等数据库的数据源时指定数据库文件的路径不同。可以通过ODBCAPI函数SQLBrowseConnect得到本

2、地所有的SQLServer服务器、服务器中的库、语言信息等。其使用方法如下所示:①得到服务器名   SQLBrowseConnect(hdbc,"DRIVER={SQLServer};",SQL_NTS,BrowseResult,sizeof(BrowseResult),&BrowseResultLen);      其中hdbc是用SQLAllocHandle函数得到的连结句柄,第二个参数是指定连结属性的输入字符串,第三个参数是输入字符串的长度,第四个参数是输出字符串的指针,我们要得到的信息就存于这个字符串中,第五个参数指定输出字符串的长度,第六个参数是实际返回字符串的长

3、度。BrowseResult所指向的函数返回的字符串中含有形如“SERVER:Server={Server_name1,Server_name2,…}”的字符串,其中Server_name1、Server_name2就是SQLServer服务器名。      ②得到库名      当用户选定一个服务器之后,可以进一步利用SQLBrowseConnect函数得到服务器中存在的库或语言信息(如果需要的话)。SQLBrowseConnect(hdbc,"SERVER=Server_name1;UID=sa;PWD=515578;",SQL_NTS,BrowseResult,siz

4、eof(BrowseResult),&BrowseResultLen);其中UID和PWD是访问该服务器的用户名和密码。这次BrowseResult所指向的函数返回的字符串中含有形如DATABASE:Database={master,model,…}和LANGUAGE:Language={Arabic,Brazilian,English,…}的字符串,其中master、model为服务器中的数据库名。利用这些得到信息就可以配置SQLServer数据源了:SQLConfigDataSource(NULL,ODBC_ADD_DSN,"SQLServer","DSN=myDSN

5、0SERVER=xhmDATABASE=pubs"))      作者有幸在网上找到SantoshRao编写的CSQLInfoEnumerator类,该类有EnumerateSQLServers、EnumerateDatabase、EnumerateDatabaseLanguage三个成员函数,其封装了SQLBrowseConnect函数并进行相应的字符处理,大大简化了SQLBrowseConnect函数的使用。 2.        与数据源建立连接如果使用ODBCAPI函数进行连结,函数SQLConnect、SQLDriverConnect和SQLBrowse

6、Connect都可以实现。其中SQLConnect函数用于给定所有参数直接建立与数据源的连接;SQLDriverConnect用于给定了部分连接参数,并弹出数据源浏览窗口与用户交互,获得足够的参数后建立与数据源的连接;而SQLBrowseConnect是通过迭代获取连结参数再进行连接,其使用如前所述。MFC为连接数据源提供了一个数据库类CDatabase,通过它我们可以非常方便地与数据源建立连结://m_db是CDatabase的对象//m_szUserId,m_szPassword是CString对象,为访问数据源的用户名和密码      CStringstr;     

7、 str=_T("DSN=xhmtest;UID=")+m_szUserId+_T(";PWD=")+m_szPassword;      if(!m_db.OpenEx(str,CDatabase::noOdbcDialog)){             AfxMessageBox("打开数据源失败");}另外,如果我们想对数据源进行操作,就可以利用打开的CDatabase对象执行SQL语句实现。如新建一张表:   str="CREATETABLETableDemo(Column1TEXT,Column2NUMB

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。