谈谈利用SOCKET进行数据库编程的思路(在线等待!)???放了一上午也没几个人谈, 高手请进!!!!!!! (200分)

  • 主题发起人 主题发起人 wugw
  • 开始时间 开始时间
W

wugw

Unregistered / Unconfirmed
GUEST, unregistred user!
需求:
从远端客户机上直接通过SOCKET的流机制来处理数据服务器上的数据。
说明:
似乎有点跨过数据库驱动的味道,但有没有办法利用现有驱动的接口,
而这个接口我并清楚只是揣想,大伙谈谈有什么好办法没有???
 
想法是很好的,据说早年的三层结构程序都是这样实现的,但工作量太大。
 
关注题目。
 
我也感觉工作量很大所以想利用现有数据驱动的接口来,特别是ADO的,而
RDS却是DCOM通讯机制。
例如:ORACLE的数据库就是通过缺省SOCKET端口1521来与客户端通讯的。
 
为什么不用midas做?服务端也不能用数据库驱动?
 
我就是不想用MIDAS,我还不想用RDS,不想用MTS
只想用SOCKET呵呵,主要是受ORACLE的连接方式启发的。
 
看看ASTA
www.astatech.com
 
ASTA比较不错。
 
我正在看好象是他们有很好的实时WEB开发产品
关于原理方面的还没有找到呢,呵呵。,,。
 
那就写一个server,放在数据库服务器端,专门处理client的请求,并把结果返回给client。
 
这个问题好象左轻候在他的一篇稿子里谈到过,就是开发一个数据库引擎,
只是不知道他当时是如何做的,他还举例FOXMAIL也是自己做的。
楼上的可以想一下:
1)如何从数据库取数据,一般是SQL语句;
2)这些数据库取出来在内存中以什么格式存在;
3)把这些数据组织好发回到前台数据显示控件也是需要考虑的;
4)其实接受客户数据很容易,那些格式你自己知道想怎么处理都行
最后组合成SQL执行就得了,只需在APPLICATION SERVER处理数据库错误
把它发回给客户端就行了;
我是想让大伙讨论一下这种思路,实做却有好多工具可用,可人家怎么实现的呢,
这不就是所谓的中间件吗?!大伙有兴趣开发吗????

 
中间件技术。
首先,要用ado或其他驱动办法,建立一个中间件应用服务程序(或者叫server程序),其作用
是访问后台的数据库(包含读写)。然后利用这个服务程序和客户端程序建立起一套协议,
利用这套协议,通过socket发送协议包给server程序,告诉server客户端要干什么,然后
server帮客户端完成任务,然后以定好的协议方式把结果返回给客户端。客户端对结果进行分拣
就ok了。
举个例子:
1。利用ado驱动,写好对数据库的操纵代码。并把它封为线程。以便下面利用。
2。利用socket建立起通讯服务器,在socket响应时间中可随时调用上面封装的线程
3。与socket客户端建立一套完善的通讯机制(协议)。
4。做好socket客户段的结果分析
例如:
client_envent=(insert,select,del,add);//定义客户段端及服务器的动作
//-简单协议
app_envent = record
envent : smallint;
envet_con: array[0..1000] of char;
con_size : integer;
end;
//---客户端
socketclientsend
begin
//填写想要完成的动作,并生成语句填入app_envent结构,发给server
end;
//服务器
scocketserverreas
var i :integer;
begin
//1。i:=根据接收的缓冲区的前两个字节判断client发过来的协议类型
//2.根据协议类型作如下动作
case i of
insert : //在这里写入根据客户端event_con内容的处理时间


add : //写入相关事件
end;

以上只是个简单例子,正式应用中比这复杂的多。但我相信能给你带来写想法

 
to 东海小小
你再看一看我的设想.
只要数据能知道格式取出来了你想怎么定协议都行呀。
 
我从看了以下,的确我看走题了。
在不知接口的情况下,的确很难。要分析原数据库的工作原理机制。
包括sqlserver也是可以直接通过socket直接控制的。而且在利用IIS架构
服务器时,你可能会注意到IIS可以通过特定端口直接与SQlserver通讯
这可能多少与你说的有点关系。
供大家一笑。
 
呵呵,你说得不错,就要那个东东,你有这方面的资料吗?
 
还有没有人能提供思路???
 
多人接受答案了。
 
后退
顶部