关于dbExpress的问题。。(100分)
我用的C++Builder6.0,dbExpress中的TSQLConnection时,双击打开deExpress Connection时根本找不到MSSQLConnection那一项,我已经下载了dbexpmss.dll的,并拷到bin文件夹中的。另外,也下载过了SQL Server for dbExpress的驱动文件dbexpsda.dll。
这是怎么回事啊?
问题点数:100、回复次数:14Top
1 楼laisf(痛并快乐着)回复于 2004-12-02 16:38:44 得分 0
upTop
2 楼jishiping(JSP 季世平)回复于 2004-12-02 19:07:44 得分 80
还需要更新2个ini文件,在Borland的共享目录下,有一个目录DBExpress,下面有2个ini文件,在
dbxconnections.ini 中添加下面的内容:
[MSSQLConnection]
DriverName=MSSQL
HostName=ServerName
DataBase=Database Name
User_Name=user
Password=password
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
MSSQL TransIsolation=ReadCommited
OS Authentication=False
在 dbxdrivers.ini 里添加 下面的内容:
[MSSQL]
GetDriverFunc=getSQLDriverMSSQL
LibraryName=dbexpmss.dll
VendorLib=oledb
HostName=ServerName
DataBase=Database Name
User_Name=user
Password=password
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
MSSQL TransIsolation=ReadCommited
OS Authentication=False
[MSSQL TransIsolation]
DirtyRead=0
ReadCommited=1
RepeatableRead=2Top
3 楼ch_builder(春辉)回复于 2004-12-02 19:16:23 得分 8
在CB中出现问题时第一看相关组件的INI配置文件,第二看注册表中的对应启动项
而CB在这方面的确总出错,没办法
至于你说的问题,季老大都已经说了,我就不再多说了Top
4 楼zhabozwzpt(风寒)回复于 2004-12-03 10:15:49 得分 0
我的INI配置文件现在已经改了,不过在连接时出现以下错误:
Failure to Connect:SQL State:08001,SQL Error Code:17
[DENETLIB][ConnectionOpen(Connect()).]SQL Server
请指教,谢谢Top
5 楼jishiping(JSP 季世平)回复于 2004-12-03 12:07:43 得分 0
SQL Error Code:17 没有 17 这个错误码。
看错误信息,是连接SQL Server出错了,肯定是几个参数设定有问题。说说你的SQLConnection的几个属性是怎么设定的?还有Params里面的参数设定。Top
6 楼zhabozwzpt(风寒)回复于 2004-12-03 12:17:05 得分 0
Connection Settings
DriveName MSSQL
HostName ZB //我的主机名字
DataBase MyDataBase //在SQL Server2000中建立的数据库
User_Name user
Password password
BlobSize -1
ErrorResourceFile
LocaleCode 0000
MSSQL Translsolation ReadCommited
OS Authentication False
Connection Names
MSSQLConnection
另外我的两个INI文件如下。
dbxconnections.ini
[DB2Connection]
DriverName=DB2
Database=DBNAME
User_Name=user
Password=password
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
DB2 TransIsolation=ReadCommited
[MySQLConnection]
DriverName=MySQL
HostName=ServerName
Database=DBNAME
User_Name=user
Password=password
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
[IBConnection]
DriverName=Interbase
Database=database.gdb
RoleName=RoleName
User_Name=sysdba
Password=masterkey
ServerCharSet=
SQLDialect=1
BlobSize=-1
CommitRetain=False
WaitOnLocks=True
ErrorResourceFile=
LocaleCode=0000
Interbase TransIsolation=ReadCommited
[OracleConnection]
DriverName=Oracle
Database=Database Name
User_Name=user
Password=password
RowsetSize=20
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
Oracle TransIsolation=ReadCommited
[InformixConnection]
DriverName=Informix
HostName=ServerName
Database=Database Name
User_Name=user
Password=password
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
Informix TransIsolation=ReadCommited
[MySQLServerConnection]
DriverName=SQLServer
BlobSize=-1
HostName=Zb
DataBase=MyDataBase
User_Name=zhabo
Password=7078206
[SQLServerConnection]
BlobSize=-1
HostName=localhost
DataBase=MyDataBase
DriverName=SQLServer
User_Name=Administrator
Password=7078206
LongStrings=True
EnableBCD=True
FetchAll=True
[MSSQLConnection]
DriverName=MSSQL
HostName=ZB
DataBase=MyDataBase
User_Name=user
Password=password
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
MSSQL TransIsolation=ReadCommited
OS Authentication=False
dbxdrivers.ini
[Installed Drivers]
DB2=1
Interbase=1
MySQL=1
Oracle=1
Informix=1
SQLServer=1
MSSQL=1
[DB2]
GetDriverFunc=getSQLDriverDB2
LibraryName=dbexpdb2.dll
VendorLib=db2cli.dll
Database=DBNAME
User_Name=user
Password=password
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
DB2 TransIsolation=ReadCommited
[Interbase]
GetDriverFunc=getSQLDriverINTERBASE
LibraryName=dbexpint.dll
VendorLib=gds32.dll
Database=database.gdb
RoleName=RoleName
User_Name=sysdba
Password=masterkey
ServerCharSet=
SQLDialect=1
BlobSize=-1
CommitRetain=False
WaitOnLocks=True
ErrorResourceFile=
LocaleCode=0000
Interbase TransIsolation=ReadCommited
[MySQL]
GetDriverFunc=getSQLDriverMYSQL
LibraryName=dbexpmysql.dll
VendorLib=libmysql.dll
HostName=ServerName
Database=DBNAME
User_Name=user
Password=password
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
[MSSQL]
GetDriverFunc=getSQLDriverMSSQL
LibraryName=dbexpmss.dll
VendorLib=oledb
HostName=ServerName
DataBase=Database Name
User_Name=user
Password=password
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
MSSQL TransIsolation=ReadCommited
OS Authentication=False
[Oracle]
GetDriverFunc=getSQLDriverORACLE
LibraryName=dbexpora.dll
VendorLib=oci.dll
Database=Database Name
User_Name=user
Password=password
RowsetSize=20
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
Oracle TransIsolation=ReadCommited
[Informix]
GetDriverFunc=getSQLDriverINFORMIX
LibraryName=dbexpinf.dll
VendorLib=isqlb09a.dll
HostName=ServerName
Database=Database Name
User_Name=user
Password=password
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
Informix TransIsolation=ReadCommited
[AutoCommit]
False=0
True=1
[BlockingMode]
False=0
True=1
[WaitOnLocks]
False=1
True=0
[CommitRetain]
False=0
True=1
[DB2 TransIsolation]
DirtyRead=0
ReadCommited=1
RepeatableRead=2
[Interbase TransIsolation]
ReadCommited=1
RepeatableRead=2
[Oracle TransIsolation]
DirtyRead=0
ReadCommited=1
RepeatableRead=2
[Informix TransIsolation]
DirtyRead=0
ReadCommited=1
RepeatableRead=2
[MSSQL TransIsolation]
DirtyRead=0
ReadCommited=1
RepeatableRead=2
[SQLDialect]
1=0
2=1
3=2
[SQLServer]
GetDriverFunc=getSQLDriverSQLServer
LibraryName=dbexpsda.dll
VendorLib=sqloledb.dll
BlobSize=-1
HostName=
DataBase=
User_Name=
Password=Top
7 楼jishiping(JSP 季世平)回复于 2004-12-03 12:20:37 得分 0
我不是说ini文件,而是你的程序中的设定。比如Params里面的参数,你必须设定实际的数据库名,SQL Server 所在的机器名,用户名、密码之类的。Top
8 楼zhabozwzpt(风寒)回复于 2004-12-03 12:34:18 得分 0
HostName ZB //我的主机名字
DataBase MyDataBase //在SQL Server2000中建立的数据库
User_Name user
Password password
Btw:这里面的User_Name Password是设置什么密码啊?我在MS SQL Server2000中的安全性一栏中身份验证只是选择了仅Windows一项。SQL Server2000我不怎么懂。。。Top
9 楼zhabozwzpt(风寒)回复于 2004-12-03 12:39:01 得分 0
问一下SQL Server2000有默认的什么用户密码么?Top
10 楼jishiping(JSP 季世平)回复于 2004-12-03 13:32:19 得分 0
我在MS SQL Server2000中的安全性一栏中身份验证只是选择了仅Windows一项。
---------------------------------------------------------------------
这样的话,我还不知道怎么设定呢。我安装 SQL Server 的时候,都选用混合模式,就是可以设定
“SQL Server 身份验证”的用户名以及密码。Top
11 楼jishiping(JSP 季世平)回复于 2004-12-03 13:46:53 得分 0
建议你重新安装SQL Server吧,安装时身份验证选混合模式。对于Windows验证的用户,我还不真知道程序中如何设定。Top
12 楼zhabozwzpt(风寒)回复于 2004-12-03 16:03:37 得分 0
谢谢。。。Top
13 楼RamjetZhang(万花从中一点红,玉树临风王小桃是也)回复于 2004-12-03 17:20:50 得分 10
1. SQL Server企业管理器中在某个server的注册节点上点右键选该sql server的属性,(不是这个注册的属性)
SQL Server Properties的security tab中,我用得双重验证,可以修改验证方式是双重验证还是单windows身份验证;不知道对安装时就选成单windows身份验证的这里还能不能改回来;
2. 我在我机器上试验:
用windows身份认证,delphi7,(偶的BCB没装任何数据库或者net的东西,最精简的安装:)
用如下的param是可以连接sql server的(从dfm文件里copy的),或者设计时打开那个db express connection的属性, connection settings最后一个选项OS Authentication 设为true;
Params.Strings = (
'DriverName=MSSQL'
'HostName=zhang'
'DataBase=misc'
'User_Name='
'Password='
'BlobSize=-1'
'LocaleCode=0000'
'MSSQL TransIsolation=ReadCommited'
'OS Authentication=True')Top
14 楼zjsyw(冰狗)回复于 2004-12-03 19:44:23 得分 2
gzTop




