你缺少自动连接数据库的语句你是用ASA数据库吧得用到以下语句在你源程序的Application的open事件中:
//其中dsn_name为你所建立的数据源名字
gs_curpath = space(100)
GetCurrentDirectoryA(100,gs_curpath)//获得程序路径
gs_curpath = trim(gs_curpath)
if right(gs_curpath,1)<>'\' then
gs_curpath = gs_curpath+"\"
end if
RegistryDelete ("HKEY_CURRENT_USER\software\odbc\odbcini\odbc data sources", dsn_name )
RegistryDelete ("HKEY_CURRENT_USER\software\odbc\odbcini\" + dsn_name, "" )
//如果没有此句,odbc中无此数据源名称,但可以用
registryset("HKEY_CURRENT_USER\software\odbc\odbcini\odbc data sources",dsn_name,regstring!,"Adaptive Server Anywhere 80")
registryset("HKEY_CURRENT_USER\software\odbc\odbcini\" + dsn_name,"AutoStop",regstring!,"Yes")
registryset("HKEY_CURRENT_USER\software\odbc\odbcini\" + dsn_name,"DatabaseFile",regstring!,gs_curpath + db_filename)//db_filename为你数据库名字
// registryset("HKEY_CURRENT_USER\software\odbc\odbcini\" + dsn_name,"Debug",regstring!,"NO")
// registryset("HKEY_CURRENT_USER\software\odbc\odbcini\" + dsn_name,"DisableMultiRowFetch",regstring!,"NO")
registryset("HKEY_CURRENT_USER\software\odbc\odbcini\" + dsn_name,"Driver",regstring!,gs_curpath+"dbodbc8dll")
registryset("HKEY_CURRENT_USER\software\odbc\odbcini\" + dsn_name,"Integrated",regstring!,"NO")
registryset("HKEY_CURRENT_USER\software\odbc\odbcini\" + dsn_name,"PWD",regstring!,"sql")
registryset("HKEY_CURRENT_USER\software\odbc\odbcini\" + dsn_name,"UID",regstring!,"dba")
registryset("HKEY_CURRENT_USER\software\odbc\odbcini\" + dsn_name,"Start",regstring!,gs_curpath+"dbeng8exe -q -cl 32m")
// registryset("HKEY_CURRENT_USER\software\odbc\odbcini\" + dsn_name,"Start",regstring!,gs_curpath+"dbeng8exe -d -qp -cl 8m")
//registryset("HKEY_CURRENT_USER\software\odbc\odbcini\" + dsn_name,"ServerName",regstring!,gs_curpath+"dbsrv8exe")
//registryset("HKEY_CURRENT_USER\software\odbc\odbcini\" + dsn_name,"DataBaseName",regstring!,"HTCTS10")
// registryset("HKEY_CURRENT_USER\software\odbc\odbcini\" + dsn_name,"Start",regstring!,gs_curpath+"dbeng8exe -Q ")
//用户名和口令不注册,以保安全,下面连接时输入正确的用户名和口令即可。end if
SQLCADBMS = "ODBC"
SQLCADBParm = "ConnectString='DSN=" + dsn_name + ";UID=dba;PWD=sql'"
SQLCAAutoCommit = False
connect;
//还需要一些文件 你从网上down就行了
连接步骤就是先配置你本地ORACLE和服务器之间的连接,这个和PB无关,首先要保证你的ORACLE客户端和服务器是连接成功的。这个配置成功以后再配置PB,所以这个是很主要的一步。主要是配置本地NET服务名。即ORACLE有个目录中的TNSNAMESORA文件。
然后开始配置PB,打开DB画板,在菜单tools下的Database Painter
选择下边提供的接口中对应你ORACLE版本的一个,然后点右键,选New Profile,打开配置页。
配置页打开后,选择其中的connection那一页,打开默认就是这个页。
profile name是你配置在本地的名字,所以这个你可以随便取,只要自己通过名字知道是哪个库就好。 server这一项,需要按照你配置net服务名的时候配置的服务名填写,必须是你配置的服务名。logid和password不用说了,数据库登录用户和密码。connect as默认就可以。
然后选preview这一页,点test connection测试一下,看看,如果提示成功没问题,配置结束。PB配置完成了。如果失败,你可以试试选择system那一页,把powerbuilder catalog table owner:这一项后边的值(默认是SYSTEM)改成你在第一页配置的logid的值试试。
基本这几步结束后,就能配置成功了。
你看下代码,参照以下的连接串去设置:
// Profile QDBT
SQLCADBMS = "ODBC"
SQLCAAutoCommit = False
SQLCADBParm = "ConnectString='DSN=QDBT;UID=scott;PWD=tigger'"
在PB设计器里设置好ODBC连接是没用的,运行时的连接取决于你的代码。
这个肯定要把你输入的项放到数据库里面去验证了。
你指的是数据窗口么?如果是在数据窗口中输入,使用itemchanged事件,这个事件是在你输入值或者修改值之后马上就触发执行的。
假设数据窗口上有个学号 stu_no的字段,现在你想判断用户输入的是否存在:
if dwoname = 'stu_no' then //如果输入的是学号字段的内容
long ll_count
select count(1) into :ll_count from tb_student where stu_no = :data;
//这里的data是修改之后的值,是事件的参数。这个语句的意思就是到数据库表里面查询你输入这个值在表中一共有多少个,如果没有,那么肯定是0了。
if ll_count > 0 then //如果有了,当然大于0
messagebox("","有值")
return 1 //返回1表示不接受修改,光标无法移动。可以自己看帮助的itemchanged事件返回值说明
end if
end if
以上就是关于PB数据库初学者的问题:换了一台电脑不会连接数据库,怎么办全部的内容,包括:PB数据库初学者的问题:换了一台电脑不会连接数据库,怎么办、pb与oracle连接时 怎么总是提示连接不上 谁能告诉我 pb连接数据库步骤、登录PB数据库应用程序,d出连接失败的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)