delphi连接数据库浅谈

2016-02-19 12:37 9 1 收藏

今天给大家分享的是由图老师小编精心为您推荐的delphi连接数据库浅谈,喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!

【 tulaoshi.com - 编程语言 】

一个程序连接数据库中间就需要有一个数据库连接引擎

  笔者在使用Delphi的过程中,共使用过几种连接方式连接Access,SqlServer,Oracle,IBM UDB,IBM AS/400...

  1.BDE
  
    这是使用Delphi最多的一种方式,建立一个BDE别名可以在控制面板中的BDE Administration中添加,不过我习惯在SQL Explorer中建立,因为建立之后直接可以执行建表的脚本了。
      你可以在SQL Explorer中左边的别名列表中点击右键,并选择要连接的数据库种类,并在之后BDE建立的连接参数中填入必要的信息,注意,当你选择不同的数据库时,右边的参数有少许的不同,这些参数的不同是由于不同数据库所要求的参数不同造成的,例如SqlServer需要输入服务器的名称,数据库的名称。
      BDE能够连接我所使用过的所有的数据库,当然有些是通过ODBC来连接的。
      在发布程序时,必须发布BDE引擎。用InstallShield Express可以很方便的做这件事情
      BDE的别名也可以在Delphi程序中动态的检查有无并建立之。我通常用TSession组件来Do It。
   
  2.ODBC
  
    这是Ms的产品。
      如果你在ODBC中建立了一个DSN连接,那么你的Delphi程序还是需要使用BDE来连接它,但是此时不需要用上一步中的手动建立别名,BDE会将ODBC中的所有别名自动在BDE中建立相同名称的别名,并且它是删不掉的,除非你删掉ODBC的DSN。
      这种方式的实际是程序通过BDE,再通过ODBC,才连接到数据库。
      在早期使用Aceess时,我通常使用这种方式。因为那时候还没有ADO。
      同样在使用IBM UDB时,我也用这种方式,因为在使用BDE直接连接时,在SQL Explorer中将不能枚举数据库中的表,而ODBC可以。
      AS/400也可以使用这种方式来连接...
      大型关系型数据库都提供ODBC驱动。在建立ODBC源时,都会调用其本身的配置,不同的数据库也是不同的。
      ODBC源也可以在程序用代码写入注册表中,来生成一个DSN.

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  3.ADO
      这是ODBC的升级版本,通常也叫做mdac ,我用过的最新版本是2.7,现在应该更高。在使用ms的数据库SqlServer,Access时,推荐使用这个东西,因为他从win98开始就集成在操作系统中,并且以连接字符串的形式提供所有参数,发布系统时不需要在程序之外做其他的工作。
      它也提供包括一些类数据库的连接,例如Excel。
      值得一提的是在连接有密码的Access时,Delphi的Ado向导生成的连接字符传是有Bug的,其生成的password子项是password='xxx';这个样子,但是这将不能连接,手动将其改成Jet Oledb password='xxx';(好像是这样,记不清了).
   
  4.DbExpress
  
    这是Borland提供的最新的数据库引擎,目前提供的驱动有限,我只用它成功测试过IBM UDB,在网上可以找到第3方的连接AS/400的驱动。
      它是一个提供单向游标的引擎,Borland称相对于BDE,具有更高的效率。并且在以后将发展它,而停止BDE的更新。
      通常在使用这种方式时,应该用DataSnap(以前叫Midas)技术来提供双向游标的应用,并且用TClientDataset的Data,Delta属性来灵活的序列化Dataset,而实现多层松耦合系统。
   
  5.第3方的驱动
  
    这些我一个都没在实际 中使用过,通常以组件的形式提供,我所知的如连接Oracle的Odac,连接As/400的Delphi400。。。
   
      最后现在如果可能,应尽量使用ADO来连接系统,并且用DataSnap来操作本地数据集来实现多层系统。

  一竿残照@金棣.net

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1601336.html

延伸阅读
标签: Web开发
细心的开发人员有时会想到,我们在一个需要读写数据库的页面里包含类似 !-- #include file="conn.asp" -- 的代码时,实际上,当你没有进行任何读写数据库操作时,这个数据库连接仍然是打开的,仍然在消耗着服务器的资源。 那么,我们有没有办法让数据库连接仅在需要读取数据库时才打开,不读取时就没有任何动作呢,以下即提...
1、改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" 代码如下: mysql -u root -pvmwaremysqluse mysql; mysqlupdate user set host = '%' where user = 'root'; mysqlselect host, user from user; ...
标签: 电脑入门
    问题1. An error occurred on the server when processing the URL.Please contact the system administrator 解决方法: 打开IIS7的asp设置,展开“调试属性”选项,“将错误发送到浏览器”这项默认的是False,改为True,然后会出现下面的错误: 问题2. 错误类型:ADODB.Connection (0x800A0E7A) 未找到提供程序的解决方...
标签: PHP
  $connection = int odbc_connect(string dsn, string user, string password)建立数据库连接, $query_string = "查询记录的条件" 如:$query_string = "select * from table" 用$cur = int odbc_exec(int connection_id, string query_string)检索数据库,将记录集放入$cur变量中。 再用while (odbc_fetch_...
标签: Web开发
简单的登录功能(未连接数据库) 代码如下: script src="Jquery1.7.js" type="text/javascript"/script script type="text/javascript" $(function () { $('#tijiao').click(function () { var username = $('#username').val(); var pwd = $('#pwd').val(); $.ajax({ type: "post", contentType: "application/json", url: "WebSe...

经验教程

884

收藏

97
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部