ODBC问题!!!急!!急!!急!!急!!急!!急!!急!!急!!急!!急!!

ibicp 2002-09-16 11:09:59
为了能够在局域网内实现记费,我采用了如下文所说的一种计费方式,但是按照文中提示的步骤设置,在建立ODBC数据源(设置过程没有错误)后,出现错误。提示为

ODBC Error:
the data source name maybe incorrect!

这是什么原因?请教各位高手如何解决!


附录:建立方式

使用ODBC为局域网上网计费


  许多单位都想对通过代理服务器上网的电脑进行收费,但多数代理服务器软件设置管理一般都比较繁琐,计费统计麻烦。而微软的Microsoft Proxy Server 2.0却能与操作系统以及其他软件紧密结合,能够将客户端产生日志通过ODBC记录在数据库里,保存非常详细的客户端上网时间、流量等信息的数据,为上网费的计算、统计、分析带来便利。

  Proxy Server的设置


  首先可以通过“域用户管理器”建立账号,如果是一批账号同时上网,则可以把建立的账号进行分组,只要授予组上网的权限,组下面的账号都可以上网了。

  然后,打开Internet Service Manager中的Web Proxy服务,通过其下面的Permissions选项对其进行上网授权(共有FTP Read、Gopher、Secure、WWW四项权限),其过程如下:单击Permissions选项中的Edit按钮,出现一个授权窗口,单击添加出现用户与组的窗口,通过双击相应的用户与组进行添加。增加完后通过双击两次确定后结束授权。以上只授予上面四种权限的一种,如要对其他权限授权,只要选中相应用户或组后,单击Permissions选项中“Copy To”按钮进行权限的复制。

  建立Acces 97数据库

  Proxy Server一般把数据写入Access和SQL二种数据库。为方便使用,笔者选择Access数据库,在建立之前,必须把保存这一数据库的路径选好,一般要选择磁盘空间比较大的地方,因为以后产生的数据量是非常大的。

  复制C:Winnthelpproxy miscMsp.sql文件到一个临时位置,并将其改名成Msp.txt,用记事本打开此文件。然后打开Access程序后选择空数据库,为其选好保存位置与取好文件名(如:sjk.mdb), 选择查询选项卡,单击新建,在新建查询对话框中选择设计视图,然后点击确定。

  在视图中选择SQL视图,删除里面的所有内容,把刚才打开的Msp.txt文件的内容全部复制到此视图中,单击保存并为此查询取个文件名, 双击此查询文件名,在提示时点“是”,完成Access表的建立,默认表名为MSP_LOG_TABLE,我们可以把其改名(如:msplogin)。

  建立系统DSN

  完成Access数据库与表的建立后,可以开始建立ODBC数据源,通过双击控制面板中的ODBC图标打开ODBC数据源管理器。其建立过程如下:在数据源管理器中选择系统DSN,单击添加按钮,选择Microsoft Access Driver(?.mdb)作为需要安装的数据源驱动程序,点击完成。输入数据源名(如:msp),并选取相应的数据库后出现窗口,点击确定完成添加。

  设置Proxy Server的日志

  进入Internet Service Manager窗口, 双击Web Proxy,选择Logging选项卡,点“Log to SQL/ODBC Database”,在“ODBC Data Source Name”中输入刚才所建立的系统DSN,即数据源名(如:msp);在Table中输入刚才所建立的Access表名(如:msplogin);“User name and Password”一般不用输,完成后点确定(图1)。

  通过上面的设置,ODBC服务器就可以开始记录Proxy Server授权用户的上网日志。信息是非常详细的,其中包括:上网的用户名(即NT域用户账号)、上网电脑的IP地址、实际上网时间、所去网站、详细网址、接收与发送字节数等,信息是可以进行利用的。

  对所得数据的利用

  统计每个账号的上网时间及费用

  首先通过Access查询向导创建一个简单查询,里面必须包括ClientUserName(上网账号名)、processingtime(实际上网时间)、bytessent(发送的字节数)、bytesrecvd(接收的字节数)四个字段(完成后可将字段名改成中文,便于理解)。


  然后点击视图选单中的总计项,将ClientUserName设成Group By,其他三个字段设成Sum,由于要对某一账号统计费用,所以在完成上面步骤后,要为ClientUserName字节创建提示准则(如:[请输入要查询的账号全名]),这样Access就会在查询时提示用户输入要查询的账号,等用户输入完成后就会统计出相应账号的上网信息。

  通过加入总计项后,Access就可以汇总相应账号的数据,我们还要加入一个用户计算费用的表达式,由于实际上网时间以毫秒为单位,所以公式中应把其转换成小时。公式格式为:([实际上网时间]/3600000)×3.5+([发送字节数]/1048576)×0.5+([接收字节数]/1048576)×0.5,在此公式中,实际上网时间、发送字节数、接收字节数为该用户相应项的总数,3.5为上网费率(即3.5元/实际上网小时数),0.5为数据流量费率(即0.5元/MB),相应的费率可以根据实际需要作调整。

  查询某一用户详细上网清单

  有时候用户对自己的上网费用感到怀疑,需要建立一个详细用户上网清单查询。

  首先,通过查询向导建立一个简单查询,要包括ClientUserName(上网账号名)、ClientIP(上网账号IP地址)、processingtime(实际上网时间)、bytessent(发送的字节数)、bytesrecvd(接收的字节数)、DestHost(网站名)、URL(详细网站名),然后为上网账号名建立查询准则,使Access能够查询相应账号的详细信息。图2所示为建立好的查询,要查询某一用户,只要输入完整的用户名(含域名与用户名),就会得到相应用户的详细上网清单。


  作为其他程序调用的数据

  上面的方法是一个快速建立上网费及清单的查询,由于已经有了用户上网的详细数据,所以完全可以通过其他编程语言来调用这些数据,建立比较完整的用户上网费查询与管理系统。限于篇幅,这方面问题本文不进行讨论,有兴趣的读者可以进一步进行研究。
...全文
146 28 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
ibicp 2002-09-18
  • 打赏
  • 举报
回复
对了!再多的数据都不怕,但是这就面临一个问题,如果时间久了,那生成的数据有好几个G,那时对数据进行操作势必会非常的缓慢,比较困难!有没有办法能让数据库也像生成日志一样,可以按天进行排序保存??
banhao 2002-09-17
  • 打赏
  • 举报
回复
不会吧!难道再多的数据都不怕???
JamesJiang 2002-09-17
  • 打赏
  • 举报
回复
理论上没有限制
banhao 2002-09-17
  • 打赏
  • 举报
回复
解决!是用户名和密码没有打!!!但是为什么昨天也没有打为什么也能够成功记录呢?对了,SQL中的表最多能记录多少条数据???
banhao 2002-09-17
  • 打赏
  • 举报
回复
出新问题了,为什么我的数据库中的表msp_log_table只记录了昨天的上网记录?今天的一条都没有记录下来,这是为什么?我查了一下总共才10190条记录啊!绝对没有超出SQL的记录限制啊!请指教!谢谢!!!
banhao 2002-09-16
  • 打赏
  • 举报
回复
我也遇到了和你一样的问题,你是不是在NT40系统下的?会不会是需要重新启动?ODBC的建立其实是在注册表中写一段东西,在NT中估计是要重新启动才能启用的吧!等会我重起再试试,然后告诉你结果!
lutaiyk 2002-09-16
  • 打赏
  • 举报
回复
要看你的程序,才行。
babyfu 2002-09-16
  • 打赏
  • 举报
回复
up
klend 2002-09-16
  • 打赏
  • 举报
回复
好长!懒得看
neverwin 2002-09-16
  • 打赏
  • 举报
回复
少了数据访问组件2。0
JamesJiang 2002-09-16
  • 打赏
  • 举报
回复
看来用不着我发了:-)
banhao 2002-09-16
  • 打赏
  • 举报
回复
我也可以了! :) 我在微软的网站找到的SP1,哈哈真不错,下面就可以自己写一段程序来统计流量了!
谢谢!!!
楼主,结帖吧,加分加分!!!
:)
vvyjp 2002-09-16
  • 打赏
  • 举报
回复
恭喜你了
ibicp 2002-09-16
  • 打赏
  • 举报
回复
可以了!终于可以了!打上sp1就可以了!

谢谢!谢谢!谢谢!谢谢!谢谢!谢谢!谢谢!谢谢!
ibicp 2002-09-16
  • 打赏
  • 举报
回复
找到了,一会安装一下试试
ibicp 2002-09-16
  • 打赏
  • 举报
回复
那麻烦你什么时候有时间发给我,好吗?

我的邮箱是i_wish@263.net

谢谢
JamesJiang 2002-09-16
  • 打赏
  • 举报
回复
有Porxy Server下的地方应该就有吧,我家里有,但身边没有,我用过年把ProxyServer,单纯从性能上讲,对它的感觉很差,不装客户端就只能走代理不能走网关,装了客户端又经常出现莫名其妙的问题,连接失败几次以后就不通了,必须把客户端卸载重装一次,比Sygate差远了。看来MS也知道自己做得差,出了一个补丁就没下文了。
JamesJiang 2002-09-16
  • 打赏
  • 举报
回复
有Porxy Server下的地方应该就有吧,我家里有,但身边没有,我用过年把ProxyServer,单纯从性能上讲,对它的感觉很差,不装客户端就只能走代理不能走网关,装了客户端又经常出现莫名其妙的问题,好端端就不通了,必须把客户端卸载重装一次,比Sygate差远了。看来MS也知道自己做得差,出了一个补丁就没下文了。
ibicp 2002-09-16
  • 打赏
  • 举报
回复
那在什么地方可以下载呢
JamesJiang 2002-09-16
  • 打赏
  • 举报
回复
Porxy Server有严格SP1,N年前我就用了。
加载更多回复(8)

6,871

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧