123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- $PBExportHeader$of_reconnect.srf
- global type of_reconnect from function_object
- end type
- forward prototypes
- global function integer of_reconnect (ref string arg_msg)
- end prototypes
- global function integer of_reconnect (ref string arg_msg);Int rslt = 1
- Disconnect Using sqlca;
- sqlca.DBMS = "SNC SQL Native Client(OLE DB)"
- sqlca.Database = sys_Database
- sqlca.UserID = sys_userid
- sqlca.DBPass = f_psw_bczh(sys_dbpass,1,sys_power_key)
- sqlca.LogID = sys_LoginID
- sqlca.LogPass = f_psw_bczh(sys_LoginPwd,1,sys_power_key)
- sqlca.ServerName = sys_ServerName
- sqlca.Lock = "RU"
- sqlca.AutoCommit = False
- //sqlca.dbparm = f_psw_bczh(sys_dbparm,1,sys_power_key)
- sqlca.DBParm = "Database= '" + sys_Database + "',PBTrimCharColumns='YES',pooling=false,CommitOnDisconnect='No'"
- Connect Using sqlca;
- If sqlca.SQLCode < 0 Then
- rslt = 0
- arg_msg = "重连数据库(主连接)失败!"+sqlca.SQLErrText
- Goto ext
- End If
- Disconnect Using id_sqlca;
- id_sqlca.DBMS = "SNC SQL Native Client(OLE DB)"
- id_sqlca.Database = sqlca.Database
- id_sqlca.UserID = sqlca.UserID
- id_sqlca.DBPass = sqlca.DBPass
- id_sqlca.LogID = sqlca.LogID
- id_sqlca.LogPass = sqlca.LogPass
- id_sqlca.ServerName = sqlca.ServerName
- id_sqlca.Lock = "RC"
- id_sqlca.AutoCommit = False
- id_sqlca.DBParm = "Database= '" + sqlca.Database + "',PBTrimCharColumns='YES',pooling=false,CommitOnDisconnect='No'"
- Connect Using id_sqlca;
- If id_sqlca.SQLCode < 0 Then
- rslt = 0
- arg_msg = "重连数据库(ID连接)失败!"+id_sqlca.SQLErrText
- Goto ext
- End If
- //Disconnect Using mainw_sqlca;
- //
- //mainw_sqlca.DBMS = "SNC SQL Native Client(OLE DB)"
- //mainw_sqlca.Database = sqlca.Database
- //mainw_sqlca.UserID = sqlca.UserID
- //mainw_sqlca.DBPass = sqlca.DBPass
- //mainw_sqlca.LogID = sqlca.LogID
- //mainw_sqlca.LogPass = sqlca.LogPass
- //mainw_sqlca.ServerName = sqlca.ServerName
- //mainw_sqlca.Lock = "RC"
- //mainw_sqlca.AutoCommit = False
- //
- //mainw_sqlca.DBParm = "Database= '" + sqlca.Database + "',PBTrimCharColumns='YES',pooling=false,CommitOnDisconnect='No'"
- //
- //Connect Using mainw_sqlca;
- //
- //
- //If mainw_sqlca.SQLCode < 0 Then
- // rslt = 0
- // arg_msg = "重连数据库(主界面连接)失败!"+mainw_sqlca.SQLErrText
- // Goto ext
- //End If
- If sys_DataBaseMsg <> '' Then
- Disconnect Using sys_email_sqlca;
- If f_connect_db_new(sys_ServerNameMsg,sys_DataBaseMsg,sys_LoginIDMsg,sys_LoginPwdMsg,sys_email_sqlca,arg_msg) = 0 Then
- rslt = 0
- arg_msg = "重连邮件数据库失败!"+sys_email_sqlca.SQLErrText
- Goto ext
- End If
- End If
- //重新设置已打开窗口dw的settransobject
- Long ll_i,ll_k,ll_l,ll_j,li_count
- DataWindow ldw_temp
- tab ltb_tmp
- For ll_j = 1 To ins_win_itmx
- If Not IsValid(ins_open_win[ll_j]) Then Continue
-
- li_count = UpperBound(ins_open_win[ll_j].Control[])
-
-
- For ll_i = 1 To li_count
-
- Choose Case ins_open_win[ll_j].Control[ll_i].TypeOf()
- Case DataWindow!
- arg_msg += ins_open_win[ll_j].ClassName() + ':'+ins_open_win[ll_j].Control[ll_i].ClassName()+'~r~n'
- ldw_temp = ins_open_win[ll_j].Control[ll_i]
- ldw_temp.SetTransObject(sqlca)
- Case tab!
- // arg_msg += ins_open_win[ll_j].ClassName() + ':'+ins_open_win[ll_j].Control[ll_i].ClassName()+'~r~n'
-
- ltb_tmp = ins_open_win[ll_j].Control[ll_i]
-
- For ll_k = 1 To UpperBound(ltb_tmp.Control[])
- // arg_msg += ins_open_win[ll_j].ClassName() + ':'+ltb_tmp.Control[ll_k].ClassName()+'~r~n'
-
- For ll_l = 1 To UpperBound(ltb_tmp.Control[ll_k].Control[])
-
- Choose Case ltb_tmp.Control[ll_k].Control[ll_l].TypeOf()
- Case DataWindow!
- // arg_msg += ins_open_win[ll_j].ClassName() + ':'+ltb_tmp.Control[ll_k].Control[ll_l].ClassName()+'~r~n'
- ldw_temp = ltb_tmp.Control[ll_k].Control[ll_l]
- ldw_temp.SetTransObject(sqlca)
- End Choose
-
- Next
-
-
- Next
-
- End Choose
-
- Next
- Next
- //重新设置主界面dw的settransobject
- If Not IsValid(w_main_scware) Then
-
- li_count = UpperBound(w_main_scware.Control[])
-
-
- For ll_i = 1 To li_count
-
- Choose Case w_main_scware.Control[ll_i].TypeOf()
- Case DataWindow!
- arg_msg += w_main_scware.ClassName() + ':'+w_main_scware.Control[ll_i].ClassName()+'~r~n'
- ldw_temp = w_main_scware.Control[ll_i]
-
- Choose Case ltb_tmp.Control[ll_k].Control[ll_l].ClassName()
- Case 'dw_sale_rece'
- ldw_temp.SetTransObject(sys_email_sqlca)
- Case 'dw_sale_send'
- ldw_temp.SetTransObject(sys_email_sqlca)
- Case 'dw_buy_send'
- ldw_temp.SetTransObject(sys_email_sqlca)
- Case 'dw_buy_feedback'
- ldw_temp.SetTransObject(sys_email_sqlca)
- Case 'dw_sale_msg'
- ldw_temp.SetTransObject(sys_email_sqlca)
- Case 'dw_buy_msg'
- ldw_temp.SetTransObject(sys_email_sqlca)
- Case Else
- ldw_temp.SetTransObject(sqlca)
- End Choose
-
- Case tab!
- ltb_tmp = w_main_scware.Control[ll_i]
-
- For ll_k = 1 To UpperBound(ltb_tmp.Control[])
- For ll_l = 1 To UpperBound(ltb_tmp.Control[ll_k].Control[])
-
- Choose Case ltb_tmp.Control[ll_k].Control[ll_l].TypeOf()
- Case DataWindow!
- arg_msg += w_main_scware.ClassName() + ':'+ltb_tmp.Control[ll_k].Control[ll_l].ClassName()+'~r~n'
- ldw_temp = ltb_tmp.Control[ll_k].Control[ll_l]
-
- Choose Case ltb_tmp.Control[ll_k].Control[ll_l].ClassName()
- Case 'dw_sale_rece'
- ldw_temp.SetTransObject(sys_email_sqlca)
- Case 'dw_sale_send'
- ldw_temp.SetTransObject(sys_email_sqlca)
- Case 'dw_buy_send'
- ldw_temp.SetTransObject(sys_email_sqlca)
- Case 'dw_buy_feedback'
- ldw_temp.SetTransObject(sys_email_sqlca)
- Case 'dw_sale_msg'
- ldw_temp.SetTransObject(sys_email_sqlca)
- Case 'dw_buy_msg'
- ldw_temp.SetTransObject(sys_email_sqlca)
- Case Else
- ldw_temp.SetTransObject(sqlca)
- End Choose
-
- End Choose
- Next
- Next
-
- End Choose
- Next
-
- End If
- ext:
- Return rslt
- end function
|