string ls_language_inifile ="j:/demo/language.ini"
string g_language=""
string as_server,as_dbms,as_database,as_logid,as_logpass
string connect_method="inifile"
string connect_method="script"
*/
string connect_method="inifile"
Choose Case connect_method
case "INIFILE"
if FileExists (ls_inifile) then
as_server =profilestring (ls_inifile,"DATABASE","Servername","")
as_dbms =profilestring (ls_inifile,"DATABASE","DBMS","")
as_database =profilestring (ls_inifile,"DATABASE","database","")
as_logid =profilestring (ls_inifile,"DATABASE","LogID","")
as_logpass =profilestring (ls-inifile,"DATABASE","LogPass","")
end if
/*以腳本直接連接數據庫*/
Case "SCRIPT"
as_server ="dxxo"
as_dbms ="MSS Microsoft SQL Server 6.x"
as_database ="erp"
as_logid ="sa"
as_logpass ="*******"
SQLCA.database =as_database
SQLCA.logpass =as_logpass
SQLCA.servername =as_server
SQLCA.logid =as_logid
SQLCA.AutoCommit =false
SQLCA.DBParm =""
connect using SQLCA;
if SQLCA.Code <> 0 then
MessageBox ("Cannot Connect to Database",SQLCA.SQLErrText)
end if
/* 4.打開窗口 */
open(w_login)
/* 1.得到用戶清單*/
dw_user.visible=false
dw_user.settransobject(sqlca)
dw_user.retrieve()
/* 2.添加用戶ID到下拉表中*/
ti=dw_user.rowcount()
for ii=1 to ti
ddlb_user.additem(dw_user.object.userid[ii])
next
/* 3.裝載默認的語言配置 */
if FileExists (g_language_inifile) then
Choose case g_language
case "english" /*讀取英文字母*/
g_language="english"
case "Simplified" /*讀取簡體字母*/
g_language="Simplified"
case "Traditional" /*讀取繁體字母*/
g_language="Traditional"
end choose
w_login.title =profileString (g_language_inifile,g_language,"appname","")
st_language.text =profileString (g_language_inifile,g_language,"language","")
cb_db.text =profilestring (g_language_inifile,g_language,"connect","")
st_userid.text =profilestring (g_language_inifile,g_language,"userid","")
st_username.text =profilestring (g_language_inifile,g_language,"username","")
st_pwd.text =profilestring (g_language_inifile,g_language,"pwd","")
cb_login.text =profilestring (g_language_inifile,g_language,"login","")
cb_exit.text =profilestring (g_language_inifile,g_language,text,"")
/*打開窗口*/
open(w_db_option_check)
close(w_login)
3> cb_exit:clicked() returns long[pbm_bnclicked]
/*關閉父窗口*/
close(parent)
/* 1.讀取用戶與密碼*/
string c_user,c_pwd,right_pwd
c_user=""
c_pwd=""
right_pwd=""
c_user=trim(ddlb_user.text)
c_pwd=trim(sle_pwd.text)
/* 2.判斷用戶與密碼*/
select password into:right_pwd
from erp_baisc_users
where userid=:c_user using sqlca;
if right_pwd <> c_pwd then
/* 3.密碼錯誤翻譯*/
string s_warning,s_password_error
s_warning=profilestring (g_language_inifile,g_language,"warning","")
s_password_error=profilestring(g_language_inifile,g_language,"password_error","")
sle_pwd.text=""
sle_pwd.setfocus()
right_pwd=""
/* 4. 密碼正確*/
/*打開主窗口*/
open(w_mian)
close(parent)
end if
/* 1.全局變量定義
string g_language
string g_language_inifile="j:/my learn/demo/language.ini"
*/
/* 2.讀取用戶選擇的語言*/
g_language=trim(ddlb_language.text)
/* 3.判斷配置文件是否存在?*/
if not FileExists (g_language_inifile) then
return
end if
/* 4.設置用戶語言選擇結果*/
choose case g_language
case "english" /*讀取英文字母*/
choose case g_language
case "simplified" /*讀取簡體字母*/
choose case g_language
case "traditional" /*讀取繁體字母*/
end choose
/* 5.改變當前窗口控件的語言*/
w_login.title =profilestring (g_language_inifile,g_language,"appname","")
st_language.text =profilestring (g_language_inifile,g_language,"language","")
cb_db.text =profilestring (g_language_inifile,g_language,"connect","")
st_userid.text =profilestring (g_language_inifile,g_language,"userid","")
st_username.text =profilestring (g_language_inifile,g_language,"username","")
st_pwd.text =profilestring (g_language_inifile,g_language,"pwssword","")
cb_login.text =profilestring (g_language_inifile,g_language,"login","")
cb_exit.text =profilestring (g_language_inifile,g_language,"exit","")
5>ddlb_user selectionchanged [integer index] returns long [pbm_bnclicked]
string c_userid,c_username
c_userid=trim(ddlb_user.text)
sle_username.text=c_username
select username into:c_username
from erp_basic_users
where userid=:c_userid using sqlca;
三、 w_db_option_check 窗口
/* 1.判斷配置文件是否存在*/
if not FileExists (g_language_inifile) then
return
end if
/* 2.改變當前窗口控件的語言*/
this.title =profilestring (g_language_inifile,g_language,"warning","")
st_username.text =profilestring (g_language_inifile,g_language,"username","")
st_pwd.text =profilestring (g_language_inifile,g_language,"password","")
cb_checkpwd.text =profilestring (g_language_inifile,g_language,"checkpwd","")
2> cb_checkpwd click[] returns long [pbm_bnclicked]
/* 1.警告框信息文字翻譯*/
string s_waring, s_password_error
s_warning =profilestring (g_language_inifile,g_language,"warning","")
s_password_error =profilestring (g_language_inifile,g_language,"password_error","")
/* 2.密碼輸入檢查*/
if sle_pwd.text="123" then
open(w_db_option)
else
messagebox(s_warning,s_password_error)
end if
close(parent)
四、 w_db_option 窗口
/* 1.判斷配置文件是否存在?*/
if not FileExists (g_language_inifile) then
return
end if
/* 2.改變當前窗口控件的語言*/
this.title =profilestring (g_language_inifile,g_language,"db_connect_mangae","")
st_servername.text =profilestring (g_language_inifile,g_language,"servername","")
st_database.text =profilestring (g_language_inifile,g_language,"database","")
st_userid.text =profilestring (g_language_inifile,g_language,"userid","")
st_password.text =profilestring (g_language_inifile,g_language,"password","")
cb_default.text =profilestring (g_language_inifile,g_language,"default","")
cb_read.text =profilestring (g_language_inifile,g_language,"read","")
cb_write.text =profilestring (g_language_inifile,g_language,"write","")
2> cb_default clicked [] returns long[pbm_bnclicked]
/* 1.設置默認連接參數到5個全局變量*/
as_server ="dxxo"
as_dbms ="MSS Microsoft SQL Server 6.x"
as_database ="erp"
as_logid ="sa"
as_logpass ="lidengzhi"
/* 2.五個全局變量到五個文本框*/
sle_servername.text =as_server
sle_dbms.text =as_dbms
sle_database.text =database
sle_logpassword.text =as_logpass
sle_logid.text =as_logid
/* 3.設置默認連接參數更新到db.ini文件中*/
if FileExists (ls_inifile) then
setprofilestring (ls_inifile,"database","servername",as_server)
setprofilestring (ls_inifile,"database","DBMS",as_dbms)
setprofilestring (ls_inifile,"database","database",as_database)
setprofilestring (ls_inifile,"database","logpassword",as_logpass)
setprofilestring (ls_inifile,"database","userid",as_logid)
end if
3> cb_read clicked [] returns long[pbm_bnclicked]
/*讀取db.ini文件設置值到文本框*/
if FileExists (ls_inifile) then
sle_servername.text =profilestring (ls_inifile,"database","servername","")
sle_dbms.text =profilestring (ls_inifile,"database","dbms","")
sle_database.text =profilestring (ls_inifile,"database","database","")
sle_logid.text =profilestring (ls_inifile,"database","logid","")
sle_logid.text =profilestring (ls_inifile,"database","logpassword","")
end if
/* 1.設置參數值存入5個全局變量*/
as_server =trim(sle_servername.text)
as_dbms =trim(sle_dbms.text)
as_database =trim(sle_database.text)
as_logid =trim(sle_logid.text)
as_logpass =trim(sle_logpassword.text)
/* 2.檢查參數是否都輸入完畢?*/
if len(as_server)=0 or len(as_dbms)=0 or
len(as_database)=0 or len(as_logid)=0 or len(as_logpass)=0 then
messagebox("warning!","can't be null,pls check server,dbms,database,logid,logpass!")
return
end if
/* 3.設置參數寫入db.ini文件中*/
if FileExists(ls_inifile) then
SetProfileString (ls_inifile,"Database","servername",as_server)
SetProfileString (ls_inifile,"Database","DBMS",as_dbms)
SetProfileString (ls_inifile,"Database","Database",as_database)
SetProfileString (ls_inifile,"Database","LogId",as_logid)
SetProfileString (ls_inifile,"Database","LogPassWord",as_logpass)
end if
/* 4.重新連接數據庫,關閉此窗口*/
disconnect using SQLCA;
connect using SQLCA;
if SQLCA.SQLCode <> 0 then
MessageBox ("Cannot Connect to Database",SQLCA.SQLErrText)
close(parent)
五、 數據庫的設置
table sql
create table erp_baisc_users(
userid char(20) NOT NULL,
username char(30) NOT NULL,
password char(12) NULL default '654321',
userofsite char(4) NULL default '',
department varchar(20) NULL default '',
statusflag char(1) NULL default '0', )
add constraint erp_baisc_users_pk PRIMARY KEY (userid)
create index erp_baisc_users_ik on erp_baisc_users(userid)
userid username password userofsite department statusflag
DDG01 JORLIN 654321 HK IT 0
DDG03 DOREN 654321 HK QA 0
GZ-01 HAWEEN 654321 GZ QA 0
GZ-02 JESSE J GZ IT 0
六、ini的配置文件
[DataBase]
ServerName =db
DBMS =MSS Microsoft SQL Server 6.x
Database =erp
LogId =sa
LogPassword =db11
2.語言配置文件language.ini
language=Simplified
appname=PB demo program
language=language
Connect=&Connect DataBase
db_connect_manage=Database Connect Manage
servername=ServerName
database=Database
default=&Default
read =&Read
write =&Write
userid =UserID
username=UserName
PassWord=PassWord
login =&Login
exit =&Exit
checkpwd=Check Password
warning =Warning
password_error=password error
insert =&Insert
delete =&Delete
modify =&Modify
save =&Save
appname=PB演示程序
language=語言選擇
Connect=&C連接數據庫
db_connect_manage=數據庫連接參數管理
servername=服務器名稱
database=數據庫
default =&D缺省
read =&R讀取
write =&W寫入
username=用戶名稱
PassWord=用戶密碼
login =&L登錄
exit =&E退出
checkpwd=&C檢查密碼
warning =警告
password_error=密碼錯誤
insert =&I插入
delete =&D刪除
modify =&M修改
save =&S保存
appname=PB演示程式
language=語言選擇
Connect=&C連接資料庫
db_connect_manage=資料庫連接參數管理
servername=伺服器名稱
database=資料庫
default =&D缺省
read =&R讀取
write =&W寫入
username=用戶名稱
PassWord=用戶密碼
login =&L登錄
exit =&E退出
checkpwd=&C檢查密碼
warning =警告
password_error=密碼錯誤
delete =&D刪除
modify =&M修改
save =&S保存
/*----------------------------------------------------------------------------------*/
應用程序名稱:demo
登陸窗口名稱:w_login
密碼驗證窗口:w_db_option_check
數據庫連接參數管理:w_db_option
主窗口:w_main
數據窗口:dw_userlist