PB连接数据库失败

时间:2021-03-26 06:21:35
以前连数据库PB用ODBC连接,编译后能用,现改为SQLCA.DBMS=ProFileString("db.ini","DataBase","DBMS","")
SQLCA.DataBase=ProFileString("db.ini","DataBase","DataBase","")
SQLCA.DBparm=ProFileString("db.ini","DataBase","DBparm","")
sqlca.servername=ProFileString("db.ini","DataBase","servername","")
sqlca.logid=ProFileString("db.ini","DataBase","logid","")
SQLCA.LogPass=ProFileString("db.ini","DataBase","logpass","")编译后无法连数据库,是什么原因?

15 个解决方案

#1


debug看看取出的数值是否是你想要的
同时不同版本的PB,连接参数有点变化

#2


谁知道用上述连接方法需要哪些DLL文件吗

#3


引用 2 楼 xxzsx 的回复:
谁知道用上述连接方法需要哪些DLL文件吗


看db.ini中的DBMS 而定...

#4


引用 2 楼 xxzsx 的回复:
谁知道用上述连接方法需要哪些DLL文件吗

看PB的版本如9.0可以用 pbodb90.dll

路径很重要。看配置文件的路径和程序的路径。

#5


如果是高版本的pb,连接数据库,要看pb版本和连的数据库,有的需要打补丁才能连接,连接的 方式也不相同,如:pb11连sqlserver就需要sqlserver客户端打相应的补丁

#6


如果是高版本的pb,连接数据库,要看pb版本和连的数据库,有的需要打补丁才能连接,连接的 方式也不相同,如:pb11连sqlserver就需要sqlserver客户端打相应的补丁 
同意这个

#7


db.ini文件发出来看看

#8


[Database]
DBMS = "MSS Microsoft SQL Server 6.x"
Database = "ywal"
ServerName = "192.168.1.3"
LogId = "sa"
LogPass= "sa"
AutoCommit = False
DBParm = ""

#9


也许就是PB版本的问题  

#10


ini文件有问题,如果你以前是odbc,连接,你的dbms应该配置为odbc,无论你连接是什么数据库都应该是odbc。

一个比较简单的做法就是:你先用pb连接通数据库,然后在pb里右击你的dsn,点击最下面的properties,然后查看preview,里面就是sqlca的连接配置,你只需.ini文件对号入座,照着copy就行了

#11


odbc配置时,所有数据源的参数都在dbparm里

#12


不编译是可以运行的,编译后需要DLL文件支持,才可以运行,现在就是想确认需要哪些DLL文件

#13


经过实践得出:PB9使用ODBC连接数据库时,需要一下几个DLL:PBDWE90.DLL,PBLIB90.DLL,PBODB90.DLL,PBVM90.DLL
PB9使用MSS Microsoft SQL Server 6.x连接数据库时,需要:PBVM90.DLL,LIBJCC.DLL,PBDWE90.DLL,PBMSS90.DLL,NTWDBLIB.DLL

#14


Power Builder RunTime Package

#15


[DATABASE]
DBMS=MSS Microsoft SQL Server 6.x
Database=database111
UserId=
LogPassword=123   ----LogPass= "sa"
ServerName=server1234
LogId=sa    -----LogId = "sa"
Lock=
DbParm=host='MARBLE'
Prompt=0
autocommit=false

需要引号吗?反正我从来不用。

你在客户端装上sqlserver查询器,看看能不能访问sql服务器。
如果能,就看看sqlca.sqkerrtext吧,看看有什么错误信息。




  这种问题在本机的sqlserver很少出现,如果是你的sqlserver查询器访问服务器连不上,则问题要麻烦些。
  服务器不要用XP,那个不支持网络访问。也不用要2003,sql2000在03上不能装(sql2005另当别论)。
  如果服务器是2000,而客户端是XP, 请在客户端安装 sqlserve连接工具,并配置tcp/ip的访问规则(我前天就碰到这种破事)。 
  另外,电脑的IP地址要在同一网段,有路由器或路由功能交换机的网络,网关一定要设对,否则即使电脑间可以ping通、1433端口可以连上, sqlserver访问还是失败。

#1


debug看看取出的数值是否是你想要的
同时不同版本的PB,连接参数有点变化

#2


谁知道用上述连接方法需要哪些DLL文件吗

#3


引用 2 楼 xxzsx 的回复:
谁知道用上述连接方法需要哪些DLL文件吗


看db.ini中的DBMS 而定...

#4


引用 2 楼 xxzsx 的回复:
谁知道用上述连接方法需要哪些DLL文件吗

看PB的版本如9.0可以用 pbodb90.dll

路径很重要。看配置文件的路径和程序的路径。

#5


如果是高版本的pb,连接数据库,要看pb版本和连的数据库,有的需要打补丁才能连接,连接的 方式也不相同,如:pb11连sqlserver就需要sqlserver客户端打相应的补丁

#6


如果是高版本的pb,连接数据库,要看pb版本和连的数据库,有的需要打补丁才能连接,连接的 方式也不相同,如:pb11连sqlserver就需要sqlserver客户端打相应的补丁 
同意这个

#7


db.ini文件发出来看看

#8


[Database]
DBMS = "MSS Microsoft SQL Server 6.x"
Database = "ywal"
ServerName = "192.168.1.3"
LogId = "sa"
LogPass= "sa"
AutoCommit = False
DBParm = ""

#9


也许就是PB版本的问题  

#10


ini文件有问题,如果你以前是odbc,连接,你的dbms应该配置为odbc,无论你连接是什么数据库都应该是odbc。

一个比较简单的做法就是:你先用pb连接通数据库,然后在pb里右击你的dsn,点击最下面的properties,然后查看preview,里面就是sqlca的连接配置,你只需.ini文件对号入座,照着copy就行了

#11


odbc配置时,所有数据源的参数都在dbparm里

#12


不编译是可以运行的,编译后需要DLL文件支持,才可以运行,现在就是想确认需要哪些DLL文件

#13


经过实践得出:PB9使用ODBC连接数据库时,需要一下几个DLL:PBDWE90.DLL,PBLIB90.DLL,PBODB90.DLL,PBVM90.DLL
PB9使用MSS Microsoft SQL Server 6.x连接数据库时,需要:PBVM90.DLL,LIBJCC.DLL,PBDWE90.DLL,PBMSS90.DLL,NTWDBLIB.DLL

#14


Power Builder RunTime Package

#15


[DATABASE]
DBMS=MSS Microsoft SQL Server 6.x
Database=database111
UserId=
LogPassword=123   ----LogPass= "sa"
ServerName=server1234
LogId=sa    -----LogId = "sa"
Lock=
DbParm=host='MARBLE'
Prompt=0
autocommit=false

需要引号吗?反正我从来不用。

你在客户端装上sqlserver查询器,看看能不能访问sql服务器。
如果能,就看看sqlca.sqkerrtext吧,看看有什么错误信息。




  这种问题在本机的sqlserver很少出现,如果是你的sqlserver查询器访问服务器连不上,则问题要麻烦些。
  服务器不要用XP,那个不支持网络访问。也不用要2003,sql2000在03上不能装(sql2005另当别论)。
  如果服务器是2000,而客户端是XP, 请在客户端安装 sqlserve连接工具,并配置tcp/ip的访问规则(我前天就碰到这种破事)。 
  另外,电脑的IP地址要在同一网段,有路由器或路由功能交换机的网络,网关一定要设对,否则即使电脑间可以ping通、1433端口可以连上, sqlserver访问还是失败。