1:不知道通过BDE怎么建立与远程数据库服务器的连接,比如SQL2000。(请指教)
要设置别名啊,就是在控制面班里有不bde的管理工具,你new一个别名,注意驱动
器是SQlServer的,还要填写sa password,dbname等,别名好了后在delphi里就可以看
到你的数据库了(别名)。
2:在应用服务器端好像就一个TDataProvider,而这个东东也没有指定监听端口啊,TSocketConnection指定的端口又是依据什么呢?怎么与应用服务器连接的呢。
TDataProvider数据提供者,一般和Query等数控件连接,TSocketConnection(dcommconnection) 这写东西是delphi提供的取得远程数据封包的东东,还有几种
我写三层一般都不爱用这些东西,直接创建远程对象是一样的。
你所看的书上的三层是一种,中间层只是起数据通道的作用,真正的三层,数据摸一般在
三层对象种处于最后一级!

解决方案 »

  1.   

    1最好不要用BDE直接连接,那需要SQLLink的支持。
    用ODBC,然后用ADO连,比较常用。
    2服务端的端口是由SocketSvr决定的。
    3.大部分书是为了骗钱。真正的三层,其实在中间层应该有N多的函数,由客户端调用。
    绝大部分的规则应该放在中间层。
      

  2.   

    用三层结构,链接为:TClientDataSet-SocketConnection-TDataSetProvider-TADOQuery-TADOConnection-SQL Server 2000; 
      

  3.   

    BDE直联在Sql Server6.5/7.0上速度比ODBC快.
      

  4.   

    具体用哪种连接方法与后端采取的数据库有关系。其中odbc无疑是最通用的。但是效率不高。
      

  5.   

    我反对用BDE访问SQL2000,为什么不用ADO呢?难到BDE要比ADO好吗?到时安装时又还要装BDE,真的很麻烦。用ADO是最选择。
    我开发一套系。服务:Tadoconnection,Tadoquery,Tdatasetprovider.客户端:
    Tdcomconnection,TclientdataSe.效果很不错的。
      

  6.   

    小什么女子,最讨厌拿这种哗众取宠的东东来提问了。所以,偶的回答是针对楼上各位DI:
    1、目前DELPHI支持四种直接的DB连接方式:BDE,ADO,IBX,DBX。
    其中BDE和ADO还可以通过ODBC间接连接。
    BDE直接连接SQLSERVER的最高版本是7,不支持SQL2000(只能通过BDE-ODBC)
    2、客户端到中间层的连接方式本质上只有两种(以D6/D7为例,以前的版本不同),一种是DCOM(包括SocketConnection和WebConnection只是DCOM的变形),另一种是SOAP
    SocketConnection和WebConnection是通过中间软件(分别是通过scktsrvr/httpsrvr)转换为DCOM连接的(实际是COM)
    DELPHI早期版本提供的CORBA连接也是DCOM的变形,只是通过CORBA的DII技术作一个转换而已,实际上失去了CORBA的优势(跨平台,负载平衡等)特别同意“大部分书都是骗钱”的说法,所以我决定写一本书来说说这些东东,希望不要被说成是骗钱^_^ 其实真要写一本好书,一点都不赚钱。
      

  7.   

    猛禽兄高见!!!
    怎么说delphi中的corba失去了corba的优势,那corba还有什么编程工具支持,corba运用的多吗,对corba也是一窍不通
    IBX,DBX是什么,不了解??
      

  8.   

    不是DELPHI做CORBA就失去优势,而是在MIDAS中用CorbaConnection不能充分发挥CORBA的优势,因为MIDAS主要还是基于COM的,受此限制所致,要完全发挥CORBA的优势就要用D6以上版本中的CORBA,用IDL2PAS来做,但这样又失去了MIDAS的方便性,回到传统CORBA开发的路上了,我CORBA研究不多,据太可怕说用DELPHI做CORBA比C++简单一些.
    IBX即InterBase Express
    DBX即dbExpress
      

  9.   

    又是一MM, 不太信, 有没 picture 让大家 see seemicrojuz(天才弟弟) 是这版新来的兄弟呵鸟又在我前面 -_-作 CORBA 一定要用 delphi6 up, d5 的本质还是在用 COMMIDAS 还是可以在 CORBA 下用的, 因为 MIDAS 说到本质只是一数据传送标准, 只要在CORBA下也实现 IAppServer 接口就可以了, 正在找办法ing.
      

  10.   

    不太喜欢小女子这个称呼,太刻意.
    有问题相互交流很正常,没必要强调性别.个人认为比较好的数据库连接方式该是ADO
      

  11.   

    小小好像很有名的样子~~;)也是mm乎
    我是在用d6啊,前几天看书看到socket协议本质上也是用com,使用软件scktsrvr进行的转换~~~大概是这么说的,谁来帮我补充一下
      

  12.   

    各位高手多指教:
    (救命啊!!!请各楼主务怪)
    1。链接为:TClientDataSet-SocketConnection-TDataSetProvider-TADOQuery-TADOConnection-SQL Server 2000,当ADOQuery的Active设为True时,报错:
    ADOQuery:Missing SQL property.
    请问如何解决?
    2。若改为DCOM连接,即TclientDataSet-DCOMConnection-TDataSetProvider-(后面不变),TADOQuery的SQL设置为:select * from 表名,连接的最后一步:TclientDataSet的Active设置为True时,报错:ADOQuery:Missing SQL property.
    请问又如何解决?
    高分相送,绝不失言!
      

  13.   

    letterlei(雷鹏) 这个错误说明你没写SQL属性,看看你在服务端能不能把ADOQuery的Active设置为true
      

  14.   

    写了一个简单的,即:select * from 表名,但连接的最后一步:TclientDataSet的Active设置为True时,报错:ADOQuery:Missing SQL property。(详见上面所贴)
    谢谢!
      

  15.   

    (补充前面所贴)写了select * from 表名后,把ADOQuery的Active可以设置为true,但连接的最后一步:TclientDataSet的Active设置为True时,报错:ADOQuery:Missing SQL property。
      

  16.   

    ADOQuery的databasename有没有指明?
      

  17.   

    很久没碰DELPHI了,好些东西真想回答别人,可是又担心误人子弟真得,GOOD GOOD STUDY!
      

  18.   

    midas这种伪三层,还在骗人,嘿嘿
      

  19.   

    wuzhongmin(吴仲敏) 
    我也觉得这样的模式满好的,现在我正在做的就是按照这样的模式~
      

  20.   

    我们公司的VC小组用DCOM作三层,大概算是“真三层”了,呵呵。开发效率极低。不过,他们倒是把DCOM吃透了。
      

  21.   

    嘿嘿,居然有人说“midas这种伪三层”,你看过midas的原代码吗?你用过吗?看来用也没有
    用过,还来献丑。
      

  22.   

    我原先有做了一些,用adotable,连接Access数据库,
    现在要改成三层分布,
    请教高手这个要使用哪些控件?
      服务器端:ADOConnection1,ADOTABLE,DataSetProvider1
      客户端:DCOMConnection1,ClientDataSet1,DataSource1
    这些更新数据的时候,服务器数据没有更改,
    请高手赐教!
    最好说说具体步骤,万分感激!!!!
    而查询时filter:=‘name='+''''+s+'''';
    s的值如果是英文是可以查询,可是如果是中文显示是空的?
      

  23.   

    to  Raptor(猛禽) :
      我用过 BDE 直接连接 SQL SERVER 2000,可以的。当然,我认为 ADO 连接还是最好。
      

  24.   

    花兄:
    BDE是通过DB-LIB访问MSSQL的,而MSSQL7的DB-LIB功能已经不全(全功能由ADO提供),MSSQL2K根本就不提供DB-LIB,只能通过ADO访问,所以BDE肯定是不能直接连MSSQL2K的,你只能通过BDE-ODBC来连。所谓BDE直接连,是指通过SQL-LINK进行,其别名的Driver name为MSSQL
    如果是通过BDE-ODBC,是通过ODBC驱动进行,其别名的Driver name为SQL Server二者是有区别的。
      

  25.   

    to  Raptor(猛禽) :
        您可以试一试。
      1。在 BDE Administrator 中,新建一个 BDE 别名,选 MSSQL
      2。设置其 Server Name 和 Database Name
      3。Apply 所作的更改这样,就可以使用了,不需要建立 ODBC 数据源。
      

  26.   

    这个问题我在两年前第一次用SQL2K时就试过了,当时还觉得奇怪,后来才知道是这么一回事。
    不过楼上说得这么肯定,我就再试试,也许BDE有更新也说不定。
    但是很不幸,我刚试过,还是不行,报错:无法连接: SQL Server 不可用或不存在。 无法连接: SQL Server 不存在或拒绝网络访问。当然,这个别名是可以建立,但是连不通。如果你可以连通,那么有一种可能:你装过SQL7,机器里有SQL7的DB-LIB,也许它也可以支持SQL2K的部分功能。但我现在没有SQL7,不能肯定。
      

  27.   

    但我的机器上从未装过 SQL 7
    (我的 DELPHI 与 SQL 2000在同一台机器中,不会有关系吧!)
      

  28.   

    再补充一下,我的 SQL 2000 用的 SQL SERVER  身份验证,可能有关
      

  29.   

    我用本机和网络机器都试过,不行的。
    我是用混合身份认证(因为没有域,其实就是SQL身份认证)的。
    我在很多环境中试过,没有成功过。
      

  30.   

    to Raptor(猛禽) and  hiflower(花) 
    我也和Raptor一样,无法成功!不知你的设置有何特殊!
    我的环境和你一样!
      

  31.   

    呵。第一次听MIDAS是伪三层说法。。
    它主要是增加了客户端与中间层数据集打包传递的技术。
    系统分层次,代码有软硬别轻率的增加变更接口。。