忙活了几天,今天终于把自己想要的功能实现了第一步。这里来跟大家分享一下基于x86的系统通信与数据库操作。
系统环境:Windows XP 、VC6.0++ 、SQL 2000
首先介绍一下windows线程编程。这里只说明一下关键代码。具体代码,请看我的资源共享。
服务器端程序:
首先在StdAfx.h文件中添加<Winsock2.h> 添加库ws2_32.lib。然后注册套接字版本。创建套接字,这里我们使用的是WSASocket.
注册网络读取事件。获取网络通信信息。WSAAsyncSelect(m_socket,m_hWnd,UM_SOCK,FD_READ);
创建消息映射函数OnSock();
消息FD_READ存储在消息lParam的低字节位。通过loword();能够读取。WSARecvFrom()函数获取端口信息。将所得信息格式化出来;具体方法:
然后就可以将数据显示出来了。
客户端:
客户端只负责将客户端数据发送到服务器端。这个详看源码。
后面就具体介绍下数据库编程。
一直以为数据库编程会很神奇,最后发现一切都是自己想太多了。
我用的是ADO 方法访问数据库。同样还有很多种方法访问数据库,例如,直接利用MFC提供的数据库控件就能帮你很方便简洁的实现数据库的访问功能。当然是用ODBC等等的方法都是很便捷的访问数据库的方法。
废话少说。现在说说具体怎么实现的吧。新建一个基于对话框的应用程序。在Insert/new class 新建一个ADOConn类用来专门实现数据库访问的一个类。在StdAfx.h文件中添加#import "C:/Program Files/Common Files/System/ado/msado15.dll" no_namespace rename("EOF","adoEOF") rename("BOF","adoBOF")。然后分别增加_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;两个针对数据库的对象。
然后可以编写自己的数据库各种操作的函数了。我这里写了这三个操作:
void OnInitDBConnect();
_RecordsetPtr& GetRecordset(_bstr_t bstrSQL);
BOOL ExecuteSQL(_bstr_t bstrSQL);
void ExitConnect();
然后就是这三个函数的实现。
最后,在你想要用到他们的地方调用ADOConn类的对象,通过对象来实现你需要的数据库功能。同时注意的是你得在调用的文件声明该类的头文件申明。
数据库访问原来也很容易----菜鸟专用下载