pb8.0与 sqlserver如何连接

tuanyuan 2003-10-10 09:13:07
pb8.0与 sqlserver 在连接时候,server name和id 以及密码后,总显示登陆不正确,请问server name和id 应该是什么?
...全文
159 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
poemlake 2003-12-04
  • 打赏
  • 举报
回复
这个问题说大也大说小也小,第一要弄清楚sqlserver的登陆方式,是window登陆验证,还是用户登陆方式验证,第二要在slqserver中mydatabase数据库中添好登陆用户的名称和密码,第三要确定程序连接数据库所用的方式,是odbc还是用pb所带的pbsql70.dll直接连接 第四,要在代码中写正确的连接代码
下面是我连sqlserver的部分代码,用了两种连接方式,连接所需的参数存到注册表中,在制作安装程序的时候把必要的参数存入注册表就可以了,程序直接读注册表获得连接数据库的信息
//get dsn得到dsn数据源

事先用程序把必要参数存到注册表中

Registryget("HKEY_current_user\SOFTWARE\water\dbparm" &
,"dbds", RegString!, ls_dbds)
Registryget("HKEY_current_user\SOFTWARE\water\dbparm" &
,"arg", RegString!,ls_arg)

if Registryget("HKEY_current_user\SOFTWARE\odbc\odbc.ini\"+ls_dbds &
,"database", RegString!, ls_dbname)=-1 or ls_arg='wrong' then
if ls_arg='wrong' then
messagebox("错误","数据库配置错误!~r~n 请重新配置...")
end if
open(w_configdb)

else
Registryget("HKEY_current_user\Software\odbc\odbc.ini\"+ls_dbds &
,"Trusted_Connection", RegString!, ls_dltype)
Registryget("HKEY_current_user\Software\odbc\odbc.ini\"+ls_dbds &
,"Server", RegString!, ls_server)
Registryget("HKEY_current_user\Software\odbc\odbc.ini\"+ls_dbds &
,"database", RegString!, ls_dbname)
Registryget("HKEY_current_user\Software\water\dbparm\"&
,"id", RegString!, ls_id)

if ls_dltype='Yes' then
SQLCA.DBMS = "ODBC"
SQLCA.Database = ls_dbname
SQLCA.ServerName = ls_server
SQLCA.LogId = ls_id
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=" + ls_dbds+ "'"+&
"ConnectOption ='SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMPT'"+&
"LoginTimeOut =10"+"Date=' \''yyyy-mm-dd\'' '"+&
"MsgTerse = 'Yes'"+"Language = 'Simplified Chinese'"+"PacketSize=1024"


else
Registryget("HKEY_current_user\Software\water\dbparm\"&
,"pwd", RegString!, ls_pwd)
SQLCA.DBMS = "MSS MS SQLServer 6.x"
SQLCA.Database = ls_dbname
SQLCA.ServerName = ls_server
SQLCA.LogId = ls_id
SQLCA.LogPass = ls_pwd
SQLCA.AutoCommit = False
SQLCA.DBParm = "PacketSize=1024"+&
"ConnectOption ='SQL_DRIVER_CONNECT,SQL_DRIVER_NOPROMPT;SQL_INTEGRATED_SECURITY,SQL_IS_ON'"+&
"LoginTimeOut =10"+"Date=' \''yyyy-mm-dd\'' '"+&
"MsgTerse = 'Yes'"+"Language = 'Simplified Chinese'"
end if
open(w_welcome)
SetPointer ( HourGlass! )
w_welcome.st_stat.text = "正在连接 ~"" + ls_server &
+"~" 上的数据库 ~"" + ls_dbname+"~"......"

CONNECT USING SQLCA; // 实施联接
if sqlca.sqlcode<0 then
openwithparm (w_error_trap,sqlca)
close(w_welcome)
else

w_welcome.st_stat.text = "正在登录服务器......"
Sleep(1000) //延时1秒
open(w_login)
close(w_welcome)
end if
end if

qianduo 2003-12-04
  • 打赏
  • 举报
回复
SQLCA.DBMS = "MSS Microsoft SQL Server" //我的是SQL2000
SQLCA.Database = "Nikko_new" //数据库名称
SQLCA.ServerName = "Nikko3" //服务器名称
SQLCA.LogId = "sa" //用户名
SQLCA.AutoCommit = True
SQLCA.DBParm = ""

我的机子上SQL没有用密码。
「已注销」 2003-12-04
  • 打赏
  • 举报
回复
我很久没遇到这样的问题了

SQL SERVER2000还是很好用的 难道你在用7.0么
jauer 2003-12-04
  • 打赏
  • 举报
回复
servername是数据库的服务器名,服务器下是数据库名。
id是数据库的用户名,如果现有的名字不能用,就直接在数据库名下建立一个用户和密码。
adeva 2003-10-10
  • 打赏
  • 举报
回复
server name是指服务器名,即你数据库所在的主机名,id你只给"sa"值就行了!如下:

// Profile sun
SQLCA.DBMS = "MSS Microsoft SQL Server 6.x" //sql server7.0
SQLCA.Database = "sun" //数据库
SQLCA.ServerName = "adeva" //服务器名
SQLCA.LogId = "sa"
SQLCA.AutoCommit = False
SQLCA.DBParm = ""
connect using sqlca;
if sqlca.sqlcode=0 then
else
Messagebox("提示","数据库连接不成功!")
end if
SilverSands 2003-10-10
  • 打赏
  • 举报
回复
server name -》 机器的IP,或着名字
id -》 登陆的用户
yao_xh 2003-10-10
  • 打赏
  • 举报
回复
配置odbc后,再连接也可以得

1,072

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧