通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
文章搜索:
热门搜索:红客 黑鹰 红客技术 安全动画 红客培训
首页 文章 软件 动画 资源 励志 论坛 邮箱 会员 军事 科技 博客 爱心红客 最近更新 800g资源
 业内新闻 漏洞公告 病毒公告 电脑知识 网络知识 菜鸟入门 攻防教程 黑客攻防 安全编程 工具使用 综合安全 个人安全 安全相关 Q Q安全 原创精华 红客人物 站内事件
您现在的位置: 爱国者安全网 >> 文章类 >> 原创精华 >> 文章正文
推荐:ODBC:web/sql分离环境下的一个思路
责任编辑:古典辣M°   更新日期:2005-12-30
 

今天Sh@doM在群里说正翻译一篇关于ODBC的文章,peter恰巧也在问这个问题, 把这个资料拿出来

大家分享吧~

这个是我将几篇文章整和的,杂乱的很, 将就看吧:)

=======================================

一.ODBC的概念

ODBC  Open DataBase Connectivity


由微软 (MICROSOFT) 所发展的数据库 (DATABASE) 存取规格, 可使所有依照 ODBC 规格设计的应用程序, 能够透过 ODBC 驱动程序 (DRIVER) 来存取数据库, 而不管使用何种数据库管理系统 (DBMS).


ODBC(Open Database Connectivity,开放数据库互连)是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。

  一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FoxPro、Access还是Oracle数据库,均可用ODBC API进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。

  一个完整的ODBC由下列几个部件组成:

  应用程序(Application)。

  ODBC管理器(Administrator)。该程序位于Windows 95控制面板(Control Panel)的32位ODBC内,其主要任务是管理安装的ODBC驱动程序和管理数据源。

  驱动程序管理器(Driver Manager)。驱动程序管理器包含在ODBC32.DLL中,对用户是透明的。其任务是管理ODBC驱动程序,是ODBC中最重要的部件。

  ODBC API。

  ODBC 驱动程序。是一些DLL,提供了ODBC和数据库之间的接口。

  数据源。数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。

  各部件之间的关系如图下图所示:

  应用程序要访问一个数据库,首先必须用ODBC管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及ODBC驱动程序等信息,建立起ODBC与具体数据库的联系。这样,只要应用程序将数据源名提供给ODBC,ODBC就能建立起与相应数据库的连接。

  在ODBC中,ODBC API不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责将应用程序对ODBC API的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。

  在访问ODBC数据源时需要ODBC驱动程序的支持。用Visual C++ 5.0安装程序可以安装SQL Server、 Access、 Paradox、 dBase、 FoxPro、 Excel、 Oracle 和Microsoft Text等驱动程序.在缺省情况下,VC5.0只会安装SQL Server、 Access、 FoxPro和dBase的驱动程序.如果用户需要安装别的驱动程序,则需要重新运行VC 5.0的安装程序并选择所需的驱动程序。


二.odbc基本参数

通过odbc

可以在web/sql分离的环境下实现sql注射ODBC提供对多种数据库的支持,如dBase、Access、MS SQL Server及Oracle,也就是说运用ODBC数据源中所提供的连接代码,我们可以实现对多种数据库的连接。以连接Access数据库为例,ODBC数据源连接文本的格式是:
  “Driver={数据库驱动程序};Dbq=数据库文件;”

  在以上连接文本中,如果数据库跟程序在同一目录下,或者用变量DefaultDir指定了数据库所在目录,则数据库文件可以不用全路径名,如下即可:

  “ODBC;DBQ=MSAccess.mdb;Driver={Microsoft Access Driver (*.mdb)};”

  如下也可:

  “ODBC;DBQ=MSAccess.mdb;DefaultDir=d:\Downloads\e21;Driver={Microsoft Access Driver (*.mdb)};”

  如果数据库跟程序不在同一目录下,或者没有用变量DefaultDir指定数据库所在目录,则数据库文件需要用全路径名,如下:

  “ODBC;DBQ=E:\Quake III Arena\MSAccess.mdb;Driver={Microsoft Access Driver (*.mdb)};”

  以上所说的是连接Access数据库的格式,那么连接其他数据库的ODBC数据源连接文本又是怎样的?连接不同类型的数据库要使用不同的对应驱动程序,没忘记吧!不同的驱动程序当然它们的参数组合也就不同了,每一种不同驱动程序都有其特定的的参数形式:

  ⑴、MS Access ODBC DSNless 连接:

  ☆、参数:Driver 设置值:{Microsoft Access Driver (*.mdb)}
  ☆、参数:Dbq 设置值:实际路径文件名称
  ☆、例句:
  “Driver={Microsoft Access Driver (*.mdb)};Dbq=c: omepath\dbname.mdb;Uid=Admin;Pwd=pass; ”

  ⑵、dBase ODBC DSNless 连接:

  ☆、参数:Driver 设置值:{Microsoft dBASE Driver (*.dbf)}
  ☆、参数:Dbq 设置值:实际路径文件名称
  ☆、例句:
  “Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=c: omepath\dbname.dbf; ”

  ⑶、Oracle ODBC DSNless 连接:

  ☆、参数:Driver 设置值:{Microsoft ODBC for Oracle}
  ☆、参数:Dbq 设置值:实际路径文件名称
  ☆、例句:
  “Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=admin;Pwd=pass; ”

  ⑷、MS SQL Server DSNless 连接:

  ☆、参数:Driver 设置值:{SQL Server};
  ☆、参数:Server 设置值:服务器名称
  ☆、参数:Database 设置值:数据表名称
  ☆、参数:Uid 设置值:用户名称
  ☆、参数:Pwd 设置值:密码
  ☆、例句:
  “Driver={SQL Server};Server=servername;Database=dbname;Uid=sa;Pwd=pass; ”

  ⑸、MS Text Driver DSNless 连接:

  ☆、参数:Driver 设置值:{Microsoft Text Driver (*.txt; *.csv)}
  ☆、参数:Dbq 设置值:实际路径文件名称
  ☆、例句:
  “Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c: omepath\;Extensions=asc,csv,tab,txt;Persist Security Info=False; ”

  ⑹、Visual Foxpro DSNless 连接:

  ☆、参数:Driver 设置值:{Microsoft Visual FoxPro Driver}
  ☆、参数:SourceType 设置值:DBC
  ☆、参数:SourceDB 设置值:实际路径文件名称
  ☆、例句:
  “Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDB=c: omepath\dbname.dbc;Exclusive=No;”

  ⑺、MySQL DSNless 连接:

  ☆、参数:Driver 设置值:{mysql}
  ☆、参数:database 设置值:数据表名称
  ☆、参数:uid 设置值:用户名称
  ☆、参数:pwd 设置值:密码
  ☆、例句:
  “driver={mysql}; database=yourdatabase;uid=username;pwd=password;option=16386”

 

*******************************************************************

SQL语言简介


  在上一讲中我们介绍了连接外部数据库的方法,那么连接之后怎样对外部数据库进行读取、显示、增删、更新、查询等操作呢?这些操作需要通过外部数据库等对象调用SQL指令才能完成。
  ㈠、什么是SQL语言

  SQL(Structure Query Languge,结构化查询语言)是一种数据库专用的计算机语言,不管是Oracle、MS SQL 、Access、MySQL或其他公司的数据库,也不管数据库建立在大型主机或个人计算机上,都可以使用SQL语言来访问和修改数据库的内容。虽然不同公司的数据库软件多多少少会增加一些专属的SQL语法,但大体上,它们还是遵循ASNI(美国国家标准协会)制定的SQL标准。因为SQL语言具有易学习及阅读等特性,所以SQL逐渐被各种数据库厂商采用,而成为一种共通的标准查询语言。只要你学会SQL,即可操作各种数据库如Visual Foxpro、Access、dBase等等。总之,SQL语言是各种数据库都可以使用的数据库查询语言。
  SQL语言不仅仅具有查询数据库的功能,而且可以对数据库完成选取、增删、更新与跳转等各种操作。

  ㈡、SQL语言的组成

  SQL语言是由命令(函数)、子句、运算符、加总函数及通配符等组成,分述如下:

  1、命令
  SQL的命令可分成数据定义语言与数据操作语言,数据定义语言可用来建立新的数据库、数据表、字段及索引等,本教程不予介绍;另一为数据操作语言,可用来建立查询表、排序、筛选数据、修改、增删等动作。数据定义语言命令常用的有选择、添加、删除和修改这四种:

  ⑴、命令:SELECT
  中文意思:选择
  说明:用于找出合乎条件的记录
  ⑵、命令:INSERT
  中文意思:插入
  说明:用于增加一笔记录或合并两个数据
  ⑶、命令:UPDATE
  中文意思:更新
  说明:用于更正合乎条件的记录
  ⑷、命令:DELETE
  中文意思:删除
  说明:用于删除合乎条件的记录

  2、子句
  子句是用于设定命令要操作的对象(即参数),SQL所用的子句如下:

  ⑴、子句:FROM
  中文意思:数据
  说明:用于指定

[1] [2] [3] 下一页

  • 上一篇文章:
  • 下一篇文章:
  • 最近更新
    固顶文章 爱国者安全网2007年度优秀版主评选
    普通文章 瑞星公司01月11日发布 每日计算机病毒及木马播报
    普通文章 破解博彩神助(专注彩票) V2.8.01
    推荐文章 推荐:跨站脚本执行漏洞代码的六点思路
    普通文章 Windows系统下的远程堆栈溢出 实战篇
    普通文章 Windows系统下的远程堆栈溢出 原理篇
    普通文章 MsSQLServer是如何加密口令的
    普通文章 浅谈国内的渗透评估过程
    普通文章 Dvbbs8.1 0DAY(通杀Access和mssql版本)
    普通文章 微软:我们的代码比赛门铁克更安全
    热门文章
    普通文章REAL蛀虫利用播放器漏洞下载恶意程序
    普通文章李彦宏:中国要在互联网领域逐渐超越美国
    普通文章马云:阿里巴巴的成功是一个生态链的成功
    普通文章Ingres用户认证非授权访问漏洞
    普通文章TCPreen FD_SET()函数远程栈溢出漏洞
    普通文章Winace UUE文件解压堆溢出漏洞
    普通文章Pclxav木马猎手第一代特征码引擎源代码
    普通文章IE收藏夹管理小精灵算法分析
    普通文章Extra Drive Pro算法分析历程
    普通文章雨过天晴自我注册
    精彩专题