请三层兄弟帮忙,我如何在三层中间层动态指定要联接的数据库(我想用ado+SQL server2000)?(50分)

  • 主题发起人 主题发起人 rlz
  • 开始时间 开始时间
R

rlz

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了一个三层的测试程序(用ADO+SQL server2000),但无法在客户端指定要联那个数据库
做了个调用函数,好像中间层从来都 没调用过。请三层兄弟帮忙。
 
太不詳細了
 
你的SQl服务器是否已将各项服务启动,若未启动,将其启动以后试一下。
 
先谢谢二位兄弟的发言,是这么回事。
我用ADO+SQL server2000来做三层程序,但不知如何在中间层上设置,使用户第一次使用时能
弹出联接测试窗口,并动态指定数据库,然后存到一个文件中,以后当有客户端连上来是时
就直接从配置文件中调用即可,当有一天需要更改数据库名时,再在中间层调用联接测试窗口,
请兄弟多多指教。我在线等待。yzrlz@163.com
qq:7041779
 
在客户端设。
 
在服务器端设一个ini文件,指定要连的各种数据库连接参数,并用一个配置程序来设置此INI
文件.服务器创建时读此文件.
当客户需要改变数据库时,只需要在配置程序中更改数据库就可以了.
这样你的服务器就可以支持多种数据库了.
 
如何设,请兄弟指教,分不够再加。在线等待。
 
adoconnectionstring,把参数写进去就是了,如果不会写,也可以自动生成
后拷出来,再写进INI文件,想怎么连就怎么连啊!
 
[Install Driver]//代表所安装的数据库驱动
DB2=1
INTERBASE=1
MYSQL=1
ORACLE=1
INFORMIX=1
CA400=1
MSSQL=1
[Use State]//当前使用哪种数据库
DataBase=MSSQL
[Oracle]
GetDriverFunc=getSQLDriverORACLE
LibraryName=dbexpora.dll
VendorLib=oci.dll
DriverName=oracle
Database=LYDB
User_Name=LY
Password=cydd0904
RowsetSize=20
BlobSize=-1
ErrorResourceFile=
LocaleCode=0000
Oracle TransIsolation=ReadCommited
OS Authen
tication=false
Multiple Transaction=false
Trim Char=False
[MSSQL]
GetDriverFunc=getSQLDriverSQLServer
LibraryName=dbexpsda.dll
VendorLib=sqloledb.dll
DriverName=SQLServer
BlobSize=-1
HostName=LYSVR
DataBase=test
User_Name=sa
Password=cydd0904
LongStrins=true
EnableBCD=true
FecthAll=true
[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
//其它的根据需要自己加上数据库的连接参数就是了
在每次中间层创建时,读此INI文件,得到连接信息就行了.
但是,由于每个数据的SQL语法有所不同,所以你的程序如果想支持多种数据库的话,你的
SQL语句得另存起来,而不是写死在程序里,这样的话,如果客户更改数据库时,你又要改
程序了.我现在用一个表专门存SQL语句的,程序里是用SQL语句对应的ID号来取数据的.
 
adoconnection直接连*.udl文件,可以随你设置
 
对了,我用的是DBEXPRESS,不过ADO也差不多了,只是参数不同而己
 
谢谢各位兄弟,我接受答案了。
to 我真的是青蛙:交个朋友好吗?
yzrlz@163.com
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部