bde 连接sql server 7.0 
在delphi中 bde 新建一个database alias, database driver name是选择mssql还是sql server?
在程序中用控件query和控件updatesql来插入、更新数据,同样程序编译通过,在选择mssql时不出错,
在选择sql server 时出错!跟踪到Applyupdates终止,部分代码如下;
database.starttransaction;
try  
  with query1 do
  begin
    insert;
    fieldbyname('name').asstring := 'aaa';
    Applyupdates;
    Commitupdates;
  end;
  database.commit;
except
  database.rollback;
end;
远程sql server 也是这样!不知是何原因?请高手指教!多谢! 

解决方案 »

  1.   

        第一步,注册ODBC数据源。这是至关重要的一步,否则就无法实现对数据库的访问。例如,我们定义一个可访问SQL—Server服务器上zhb数据库的数据源ZHB。首先,选择SQLServer类型的数据库,进入“ODBCSQLServerSetup”窗口。然后,定义数据源名称为“ZHB”;定义Server为“SQL—Server”;以及网络路径为“ιιSQL—Server”;最后,按option命令按钮选择访问的数据库为zhb即可。
        第二步,配置BDE。它是Delphi专用的数据库引擎。既可以从Delphi程序组里启动,也可以从Delphi程序项的Tools菜单下启动。Delphi在访问SQLServer数据库时略不同于VB。VB是直接调用ODBC来连接SQLServer的,而Delphi是首先调用BDE中的别名,别名再通过BDE中的ODBCDriver直接访问ODBC数据源实现的。而在BDE的ODBCDriver中你还可以定义其他ODBC属性,例如语言驱动程序或打开模式等等。这无疑大大增强了ODBC的功能。
        首先,在Drivers标记页中,按“NewODBCDriver”添加新的驱动程序。在添加窗口中有三栏需要填写。第一栏SQLLinkDriver可任取一名,如:ODBC—ZHB;第二栏DefaultODBCDriver中选择SQLServer;在第三栏defaultDataSourceName中选择刚才注册的数据源ZHB。按OK确认后就增加了一个名为ODBC—ZHB的DelphiODBC驱动程序。在其右侧的参数表中,还可以设置打开模式OPENMODE、查询模式SQLQRYMODE、SQL语句执行模式SQLPASSTHRUMODE以及语言驱动程序LANGDRIVER等。接下来,在Aliases标记页中,按“NewAlias”命令按钮增加一个新的别名。在增加新别名窗口中有两栏需要填写。第一栏为Newaliasname,可任取一个名字,如:zhbdb;这个别名就是我们要在Table控件中直接调用的数据库名字。第二栏Aliastype选择刚才在Drivers标记页中定义的ODBC—ZHB,最后按OK确认,就增加了一个名为zhbdb的别名。这样,Table控件可以通过别名zhbdb,别名zhbdb通过Delphi的ODBCDrivers(即:ODBC—ZHB),ODBC—ZHB再通过ODBC数据源ZHB就可连接到SQL—Server服务器上的zhb数据库了。以上相当于完成了在BDE中的注册,接下来就可以进行控件的属性设置了。
      

  2.   

    你好 !多谢回贴!可是用控件query和控件updatesql组合来插入,修改数据在选择mssql 和sql server 驱动时,相同的程序会报错呀?
      

  3.   

    用 bde 原始了点用 mssql 这个是 bde 方式, sql server 是 odbc 方式出错原因一般是有字段要求非空或主键冲突updatesql 中语句是怎样?