当前位置: 代码迷 >> PB >> pb 9.0中到底如何连接数据库呀?高分求解!
  详细解决方案

pb 9.0中到底如何连接数据库呀?高分求解!

热度:38   发布时间:2016-04-29 09:50:37.0
pb 9.0中到底怎么连接数据库呀?高分求解!!!
现在我已经在pb 9.0里面通过ODBC建立了一个ASA数据库(就自带的那个数据库),同时也现新建了一个表(登陆表),往表里添加了数据。

  我想通过一个登陆按钮的Clicked事件里去查询用户输入的密码和账号是否正确,我该怎么做?

  是不是要写一个连接字符串之类的东西,才能进行查询,该怎么写PowerScript代码呀?

  很简单的问题,不懂就难!静候您指教!!!谢谢。。。。

------解决方案--------------------
在appliaction的open事件里
sqlca.DBMS =ProfileString(inifile,"database", "dbms", "")
sqlca.database =ProfileString(inifile,"database", "database", "")
sqlca.userid =ProfileString(inifile,"database", "userid", "")
sqlca.dbpass =ProfileString(inifile,"database", "dbpass", "")
sqlca.logid =ProfileString(inifile,"database", "logid", "")
sqlca.logpass =ProfileString(inifile,"database", "logpass", "")
sqlca.servername=ProfileString(inifile,"database", "servername", "")
sqlca.dbparm =ProfileString(inifile,"database", "dbparm", "")
connect using sqlca;
if sqlca.sqlcode<>0 then
messagebox('','连不上')
end if

------解决方案--------------------
一般都是在程序启动的open事件里谢连接数据库
再点击按钮里通过用户名密码写sql查询,得到返回结果判断是否正确
------解决方案--------------------
1、建一个登录窗口,含2个单行编辑框,一个用来输入用户名(sle_1),一个用来输入口令(sle_2),还有一个“确定”按钮(cb_1);
2、在登录窗口的“OPEN”事件中,定义如下代码:
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
3、在"cb_1"的"clicked"事件中,定义如下代码:
string ls_uid,ls_pd
ls_uid = trim (sle_1.text)
ls_pd = trim (sle_2.text)
SQLCA.DBParm = "ConnectString='DSN=Demo;UID=" + ls_uid + ";PWD=" + ls_pd + "'"
//假设数据源的名称为Demo
connect using sqlca;
if sqlca.sqlcode = 0 then
messagebox ("连接数据库","成功")
else
messagebox ("连接数据库",sqlca.sqlerrtext)
end if
------解决方案--------------------
用内嵌的sql语句,select,insert,update,delete可以直接对数据库进行操作
------解决方案--------------------
探讨
连接成功后,怎么对里面的数据进行查询呢?
4楼的连接怎么感觉有的不对呢?SQLCA.DBParm里面怎么可以这样用,登陆界面里的参数应该是具体的查询语sql句里的参数才对吧。

------解决方案--------------------
String ls_id

select id into :ls_id from table1
where id = 登陆窗口传入id;
------解决方案--------------------
C/C++ code
string ls_id, ls_pwdlong   ll_countls_id = tb_id.textls_pwd = tb_pwd.textselect count(*) into :ll_count from logininfo where id = :ls_id and pwd = :ls_pwd;if ll_count = 0 then     messagebox('', '用户名或密码不正确。')    returnend if
  相关解决方案