社区
PowerBuilder
帖子详情
pb8.0+ASA7.0的 C/S 模式的数据库应该怎么配置?
shuihersina
2003-11-25 11:32:10
请各位高手告诉我
pb8.0+ASA7.0的 C/S 模式的程序发布的时候要想顺利运行,应该怎样写注册表
——客户端和服务器端的注册表各应该怎样写?
(千万不要告诉我手动配置——手动配置我是会的)
先谢谢了!
...全文
81
6
打赏
收藏
pb8.0+ASA7.0的 C/S 模式的数据库应该怎么配置?
请各位高手告诉我 pb8.0+ASA7.0的 C/S 模式的程序发布的时候要想顺利运行,应该怎样写注册表 ——客户端和服务器端的注册表各应该怎样写? (千万不要告诉我手动配置——手动配置我是会的) 先谢谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
shuihersina
2003-11-26
打赏
举报
回复
楼上说的好像是单机版的本地数据源的注册,
我说的是 C/S 模式的网络数据库的注册呀!
麻烦你告诉我好么??
qqjj7758
2003-11-26
打赏
举报
回复
强烈建议用安装工具来设置注册表 那样更令灵活
qqjj7758
2003-11-26
打赏
举报
回复
这样的例子好多
动态往注册表里填写数据 很容易 一个ini文件就帮你搞定
二、使用PB的注册函数
PB中使用“RegistrySet()”函数在注册表中设置或创建指定的键,以下是该函数语法及参数。
语法:
RegistrySet ( key, valuename, valuetype, value )
参数:
key:string类型,指定键名;
valuename:string类型,指定要访问值的名称。每个键可以有一个未命名的值和多个命名的值。要访问未命名的值,把该参数指定为空字符串(″″)。如果注册库中不存在指定值名,该函数将创建新的值名;
valuetype:RegistryValueType枚举类型,指定值的数据类型,这里我们选用“regstring!”;
value:要设置的值,其数据类型应该与valuetype参数指定的类型相匹配。
返回值:Integer型。函数执行成功时返回1,失败时返回-1。
三、应用实例
假设我们连接到“sybase sql anywhere 5.0”创建的本地数据库“c:\pb\ex.db”,数据源名称为“ex”。
/*如果是第一次运行该系统,则注册数据源:为了保证应用程序只是在首次运行时注册数据源,需要在程序的工作目录下创建一个INI文件,该文件包含“start”小节, 其中建立“first=1”*/
integer rc
//取得INI文件中“start”小节 “first”的值
rc=profileint(″first.ini″,″start″,″first″,1)
//rc=1则是初次运行该系统,进行注册
if rc=1 then
/*将数据源名称“ex”注册到“HKEY_CURRENT_USER\software\odbc\odbc.ini\odbc data sources”下。*/
registryset(″HKEY_CURRENT_USER\software\odbc\odbc.ini\odbc data sources″,″ex″,regstring!,″sybase sql anywhere 5.0″)
/*“HKEY_CURRENT_USER\software\odbc\odbc.ini”下新增以该数据源名称“ex”为键名的子键,*/
registryset(″HKEY_CURRENT_USER\software\odbc\odbc.ini\ex″,″″,regstring!,″″)
//创建连接到数据源所需要的参数
registryset(″HKEY_CURRENT_USER\software\odbc\odbc.ini\ex″,″autostop″,regstring!,″yes″)
registryset(″HKEY_CURRENT_USER\software\odbc\odbc.ini\ex″,″databasefile″,regstring!,″c:\pb\ex.db″)
registryset(″HKEY_CURRENT_USER\software\odbc\odbc.ini\ex″,″databasename″,regstring!,″ex″)
registryset(″HKEY_CURRENT_USER\software\odbc\odbc.ini\ex″,″driver″,regstring!,″wod50t.dll″)
registryset(″HKEY_CURRENT_USER\software\odbc\odbc.ini\ex″,″pwd″,regstring!,″sql″)
registryset(″HKEY_CURRENT_USER\software\odbc\odbc.ini\ex″,″start″,regstring!,″dbeng50 -Q″)
registryset(″HKEY_CURRENT_USER\software\odbc\odbc.ini\ex″,″uid″,regstring!,″dba″)
/*设置INI文件中“start”小节的“first=0”,避免下次运行时再次注册数据源*/
setprofilestring(″first.ini″,″start″,″first″,″0″)
end if
将以上代码加入应用对象的open事件中,执行程序即可完成ODBC数据源的注册。
代码中为了更好地说明registryset()函数的使用,将连接的数据库固定在“c:\pb”目录下。在具体应用中,可以使用外部函数“GetCurrentDirectoryA()”得到当前目录,与数据库文件名合并为一个字符串变量后,以该变量注册″databasefile″的值,就实现了真正的动态注册ODBC数据源,这里不再赘述。
mittee
2003-11-26
打赏
举报
回复
answer9=RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\YOU_DB_CLIENT","EngineName",RegString!,"YOUR_DB_SERVER")//这里指定你数据服务器的名字
answer10=RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\YOU_DB_CLIENT","CommLinks",RegString!,"TCPIP{}") //这里指定通过tcp/ip 连接 生成 dsn后看一下就知道了
answer11=RegistrySet("HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\YOU_DB_CLIENT","AutoStop",RegString!,"YES")
pb8
2003-11-26
打赏
举报
回复
//服务器端
global type uf_runasaserver from function_object
end type
forward prototypes
global function integer uf_runasaserver (string as_runpath, string as_servername, string as_db, string as_log)
end prototypes
global function integer uf_runasaserver (string as_runpath, string as_servername, string as_db, string as_log);//运行服务器数据库
string ls_Server,ls_cmd
ls_server = as_runpath + "dbsrv7"
ls_cmd = ls_server + ' ' + as_db + ' -n ' + as_servername&
+ ' -x tcpip -c 44m -q -o ' + as_log
run(ls_cmd)
return 0
end function
//客户端
global type uf_regasaforserver from function_object
end type
forward prototypes
global function integer uf_regasaforserver (string as_odbc, string as_ip, string as_db, string as_user, string as_pass, string as_drive)
end prototypes
global function integer uf_regasaforserver (string as_odbc, string as_ip, string as_db, string as_user, string as_pass, string as_drive);String ls_odbckey,ls_host
int li_rtn
ls_odbckey = 'HKEY_CURRENT_USER\Software\ODBC\ODBC.INI\' + as_odbc
ls_host = "TCPIP{host=" + as_ip + "},SharedMemory"
//数据库驱动程序
li_rtn = RegistrySet(ls_odbckey,"Driver", RegString!,as_drive)
if li_rtn = -1 then return -1
//用户名
li_rtn = RegistrySet(ls_odbckey,"UID", RegString!,as_user)
if li_rtn = -1 then return -1
//密码
li_rtn = RegistrySet(ls_odbckey,"PWD", RegString!,as_pass)
if li_rtn = -1 then return -1
//数据库名
li_rtn = RegistrySet(ls_odbckey,"DatabaseName", RegString!,as_db)
if li_rtn = -1 then return -1
//引擎名
li_rtn = RegistrySet(ls_odbckey,"EngineName", RegString!,as_db)
if li_rtn = -1 then return -1
//自动停止
li_rtn = RegistrySet(ls_odbckey,"AutoStop", RegString!,"YES")
if li_rtn = -1 then return -1
li_rtn = RegistrySet(ls_odbckey,"Integrated", RegString!,"NO")
if li_rtn = -1 then return -1
//网络连接
li_rtn = RegistrySet(ls_odbckey,"CommLinks", RegString!,ls_host)
if li_rtn = -1 then return -1
return 0
end function
shuihersina
2003-11-26
打赏
举报
回复
怎么没有人知道呀
PB8
.0+SQL的图书馆管理系统
【
PB8
.0 + SQL 图书馆管理系统】是一款基于PowerBuilder 8.0(简称
PB8
.0)开发的
数据库
应用程序,它利用SQL
数据库
技术来实现图书馆的日常管理功能。这个系统虽然规模不大,但对于初学者而言,却是一个非常实用的学习...
PB8
.0实用教程
PB8
.0,全称为PowerBuilder 8.0,是Sybase公司开发的一款强大的
数据库
应用程序开发工具。本教程旨在帮助初学者和有经验的开发者深入理解和掌握
PB8
.0的核心功能和应用技巧,以便于构建高效、稳定的
数据库
应用程序。 ...
PB 8.0 运行环境
PB 8.0,全称为PowerBuilder 8.0,是一款由Sybase公司开发的可视化、面向对象的编程工具,主要用于构建
数据库
应用系统。这款强大的开发环境以其易用性、高效性和灵活性在20世纪90年代至21世纪初受到了广泛的应用。...
SHUDEPB PB反编译专家1.862 FOR PB6/PB7/
PB8
/PB9/PB10
全面支持反编译PB5.0/PB6.5/PB7.0/
PB8
.0/PB9.0/PB10.0/PB10.5/PocketBuilder2.0.x/2.5.x/ PB11CTP/Beta1/Beta2/PB11/PB11.1/PB11.2/ PB11.5(2009-06-07) 的反编译,支持对Powershield处理过程序的反编译.正式版支持...
洗浴管理系统(
pb8
.0源码+
数据库
).zip
对于学习者来说,通过研究源码和
数据库
设计,可以深入理解
PB8
.0的编程
模式
,掌握
数据库
管理系统的构建技巧,同时也能了解到实际业务场景下的系统需求和解决方案。因此,这个系统不仅是一个教学实例,也是提升个人...
PowerBuilder
1,093
社区成员
66,453
社区内容
发帖
与我相关
我的任务
PowerBuilder
PowerBuilder 相关问题讨论
复制链接
扫一扫
分享
社区描述
PowerBuilder 相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章