Delphi4的BDE怎样连接SQL Server7的DATABASE?(50分)

  • 主题发起人 主题发起人 王瑞
  • 开始时间 开始时间

王瑞

Unregistered / Unconfirmed
GUEST, unregistred user!
我设置BDE的Aliase并选为MSSQL后,用SQL EXPLORE却打不开DATABASE,
MSSQLServer已运行。
 
Server Name与Database Name设置好没有?Applay?
 
下面一段摘之西北网络中心兵马俑 BBS 站 bbs.xanet.edu.cn

第一步,注册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中的注册,接下来就可以进行控件的属性设置了。
第三步,设置DataAccess控件属性以实现与数据库的连接。将Table和DataSource控件加到窗体中并修改Table控件的属性。首先,将DatabaseName属性改为刚才在BDE别名中定义的zhbdb。设置完databaseName属性后,就可以从TableName属性的下拉列表中选择一个表的名字。这其间Table控件要完成与数据库的连接,连接成功后,该列表中才会出现可选的表名。然后,将Active属性改为true,将打开的数据库激活,和DataSource控件建立联系。将Exclusive属性改为true。最后,将DataSource控件的DataSet属性设为Table1。DataSource控件为Table控件与DataControls控件相联系的渠道。通过以上步骤的设置,DataSource1对象就与zhb数据库的某个表建立了联系。以后,只要对DataSource1对象访问,就可以实现对该表的操作了。
第四步,设置DataControls控件属性以实现对数据库的操作。一旦DataAccess类的控件被成功打开,处于窗口中的DataControls标记页的控件就可以使用了。这些控件有DBGrid、DBNavigator、DBText、DBEdit、DBMemo、DBImage、DBListBox、DBComboBox、DBCheckBox以及DBRadioGroup。这些控件只要设定他们的DataSource和DataFields属性就可以实现对表的读写操作。
 
该死,没换行!

下面一段摘之西北网络中心兵马俑 BBS 站 bbs.xanet.edu.cn

第一步,注册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中的注册,接下来就可以进行控件的属
性设置了。
第三步,设置DataAccess控件属性以实现与数据库的连接。将Table和
DataSource控件加到窗体中并修改Table控件的属性。首先,将DatabaseName属性改
为刚才在BDE别名中定义的zhbdb。设置完databaseName属性后,就可以从TableName
属性的下拉列表中选择一个表的名字。这其间Table控件要完成与数据库的连接,连接
成功后,该列表中才会出现可选的表名。然后,将Active属性改为true,将打开的数
据库激活,和DataSource控件建立联系。将Exclusive属性改为true。最后,将
DataSource控件的DataSet属性设为Table1。DataSource控件为Table控件与
DataControls控件相联系的渠道。通过以上步骤的设置,DataSource1对象就与zhb
数据库的某个表建立了联系。以后,只要对DataSource1对象访问,就可以实现对该
表的操作了。
第四步,设置DataControls控件属性以实现对数据库的操作。一旦DataAccess
类的控件被成功打开,处于窗口中的DataControls标记页的控件就可以使用了。这些
控件有DBGrid、DBNavigator、DBText、DBEdit、DBMemo、DBImage、DBListBox、
DBComboBox、DBCheckBox以及DBRadioGroup。这些控件只要设定他们的DataSource
和DataFields属性就可以实现对表的读写操作。


 
根据我个人的经验,不需要配置ODBC,直接保证若干个重要的
DLL库能够被程序和BDE访问到就可以了。这个问题好象论坛上
已经回答过了。
另外要补充的是,我曾经用MS SQL 6的连接库连接成功了SQL 7,
除了存储过程外,一切好象都挺正常,说明MS SQL SERVER版本直接
至少在NTDBLIB。DLL这个库上继承性还可以。
 
我的意思是不需要配置ODBC,直接用BDE,Server Name设置为MSS_SERVER
Database Name设置为C:/MSSQL7/Data/www_Data.MDF,我是单机状态,
SQLQRYMODE设置为:LOCAL
 
database name不能是这个, 要使用sql7上的databasename,
type=mssql
host name=你机器名
server name=你的sqlserver name
sqlqrymode=server
user name=....
不用odbc就可以了:-)
 
感谢各位!!!但是用SQL EXPLORE+BDE查,有些库出现:Invalid field type错误,用ODBC就不出错,但不出现汉字FIELD,我的库原来是PARADOX经SQLSERVER7的ENTERPRISE MANAGER转换的,用ENTERPRISE MANAGER查汉字FIELD正常
 
感谢各位!!!但是用SQL EXPLORE+BDE查,有些库出现:Invalid field type错误,
用ODBC就不出错,但不出现汉字FIELD,我的库原来是PARADOX经SQLSERVER7的
ENTERPRISE MANAGER转换的,用ENTERPRISE MANAGER查汉字FIELD正常
 
DO NOT use Chinese Field Name!!!!!
 
冥冥世界,各取所需,达到目的就行了。何必拘泥于小处1
 
多人接受答案了。
 
后退
顶部