急!在线等!为什么pb连不上SQL Server数据库,连SQL Server自带的master都连不上
我在为公司调试程序,是一个已经写好的源代码,但就是连不上数据库,用odbc建立数据源后,用data profile怎么也连不上,即使是sql自带的master也连不上。改代码是用注册表来进行数据库的连接
注册表设置如下:
"ServerName"="isc001\isc"
"LogId"="sa"
"LogPass"="isc007"
"DBMS"="MSS Microsoft SQL Server 6.x"
"DATABASE"="nosecmis"
"AdminId"="23022222"
"AdminName"="郑可逵"
"IdMark"="2302"
"IdLen"="4"
"HelpFile"=""
"Warp"="8"
"AppDirectory"="D:"
读取注册表的代码如下:
这是取得注册表信息的函数gf_get_reg_info():
us_reg lus_reg
string ls_temp
//取的注册表的各项信息
string ls_reg_path //注册表信息的路径
ls_reg_path='HKEY_LOCAL_MACHINE\Software\ISC\rsmis\'
//取得服务器的名称
registryget(ls_reg_path,"ServerName",regstring!,lus_reg.ss_servername)
//取得服务器登录用户的名称
registryget(ls_reg_path,"LogId",regstring!,lus_reg.ss_logid)
//取得登录口令
registryget(ls_reg_path,"LogPass",regstring!,lus_reg.ss_logpass)
//取得DBMS的名称
registryget(ls_reg_path,"DBMS",regstring!,lus_reg.ss_dbms)
//取得数据库的名称
registryget(ls_reg_path,"DATABASE",regstring!,lus_reg.ss_database)
//系统管理员id
registryget(ls_reg_path,"Adminid",regstring!,lus_reg.ss_adminid)
//系统管理员name
registryget(ls_reg_path,"Adminname",regstring!,lus_reg.ss_adminname)
//账号补码
registryget(ls_reg_path,"IdMark",regstring!,lus_reg.ss_Idmark)
//账号录入码的长度
registryget(ls_reg_path,"IdLen",regstring!,ls_temp)
lus_reg.si_Idlen=integer(ls_temp)
//HELP文件的名称
registryget(ls_reg_path,"HelpFile",regstring!,lus_reg.ss_helpfile)
return lus_reg
这是连接函数gf_set_profile(ius_reg):
//根据从注册表得到的信息,设置连接参数
transaction l_trans
us_host lus_host
///////////////////////////
lus_host=gf_get_host_info()
/////////////////////////
l_trans=create transaction
l_trans.DBMS = aus_reg.ss_dbms
l_trans.Database = aus_reg.ss_database
l_trans.LogPass = aus_reg.ss_logpass
l_trans.ServerName =aus_reg.ss_servername
l_trans.LogId = aus_reg.ss_logid
l_trans.AutoCommit = false
l_trans.DBParm = "AppName='Rsmis(ISC Design)'"+",Host='"+w_p_login.sle_account.text+"\"+trim(lus_host.ss_name)+"'"
return l_trans
这是登录窗体中用户名文本框的modified()函数
//根据注册表提供的连接信息,连接到数据库
//连接数据库
integer li_exist//判断账号是否存在
string ls_mask,ls_text,ls_account
integer li_len
string ls_use_mark //可用标志
ius_reg=gf_get_reg_info()
sqlca=gf_set_profile(ius_reg)
connect using sqlca;
long ll_account//用户账号的数量
string ls_password
if sqlca.sqlcode<>0 then
messagebox("错误","数据库连接错误,请重新启动,或与系统管理员联系!")
halt;
else
.........
请各位大侠帮帮忙,指点一下小妹吧,过完五一要交的!!!