救命啊!~~~急死我了!`数据保存不了
现在我局域网中有三台机器,一台是POS机两台是PC机,POS机上与PC上用的程序都是独立的!`当POS机上
保存数据完毕后还能够继续进行销售,但是另外两台机器上数据都不能够保存了,我偶然发现当PC机上不能保存数据的时候把POS机这端程序关闭就能够立即保存数据了!我在ORACLE的客户进程中发现那两台PC机不能保存数据时的状态是在执行SELECT语句。
下面我把我POS机端保存数据的代码帖出来,大家帮我看看有什么问题!~
我现在希望在保存数据的时候先断开一下然后再连接数据库,这语句怎么写啊?请帮我在下面的程序中注释一下,然后再把完整的代码粘贴上来,谢谢了!对不起,我以前是用DELPHI的,对PB不是特别熟,请高手们指点!~谢谢了!
//结帐操作
Decimal lc_totvalue,lc_givechang,lc_gathering
String ls_billno
Long ll_row
This.Event ue_createdatastore() //创建DataStore
//if not com_init(1,2400) then
// messagebox("错误","COM1打开错误!!!",StopSign!)
// return false;
//end if
if dw_detail.RowCount() <= 0 then
MessageBox('无法结帐','无任何销售明细记录,请检查!');
return false;
end if
if not Event ue_datacheck() then return false; //检验SALEBILL数据
if not Event ue_checkdetail() then return false; //检验销售明细中记录正确性
if em_shishou.Text = '' or IsNull(em_shishou.Text) or em_shishou.Text = '0.00' then
MessageBox('提示','请输入实收金额!');
em_shishou.SetFocus();
return false;
end if
//取得各个变量,并且赋值
is_shoper = Trim(Right(ddlb_oper.Text,30));
is_counter = Trim(Right(ddlb_counter.Text,30));
is_paytype = Trim(Right(ddlb_paytype.Text,30));
ls_billno = g_function.of_newbillno("salbill",gs_subcono);
if ls_billno = '' or IsNull(ls_billno) then
MessageBox('提示','在提取SALBILL表序列时出错!');
return false;
end if
Event ue_master_dataset(ls_billno); //保存SALBILL前对dw_master窗口数据赋值
//保存dw_master数据
dw_master.AcceptText()
if dw_master.Update() <> 1 then
MessageBox('提示','在保存销售单据(SALBILL)信息时失败!',StopSign!);
return false;
end if
//保存SALBILLD前对dw_detail窗口数据赋值
for ll_row = 1 to dw_detail.RowCount()
dw_detail.Object.billno[ll_row] = ls_billno;
next
//保存dw_detail数据
dw_detail.AcceptText();
if dw_detail.Update() <> 1 then
MessageBox('提示','在保存销售单据明细(SALBILLD)信息时失败!',StopSign!);
return false;
end if
//自动生成出库单
if Event ue_updateprepare(ls_billno) = -1 then
Event ue_rollback_bill(ls_billno);
return false;
end if
if Event ue_save_payment(ls_billno) = -1 then return false; //保存销售记录
if Event ue_accounts() = -1 then return false; //记帐
MessageBox('提示','此比POS单据已顺利处理,并且正常出库、记帐!!!');
//cb_checkout.Enabled = False;
//cb_billdel.Enabled = False;
//cb_newbill.Enabled = True;
cb_printbill.Enabled = True;
cb_blankout.Enabled = True;
sle_goods.Text = '';
sle_gname.Text = '';
sle_spec.Text = '';
sle_saleprc.Text = '';
sle_store.Text = '';
//wf_init_display(); //初使化客显
//
//wf_setoption(is_print)
//if is_print = '1' then Event ue_printbill_new(); // 打印小票
//
//wf_display_sign('2')
//lc_gathering = Round(Dec(em_shishou.Text),2);
//wf_lound_light('3'); //亮收款灯
//wf_displayvalue(lc_gathering) //显示金额
//wf_overtime(1);
//
//lc_givechang = Round(Dec(em_zhaoling.Text),2);
//wf_lound_light('4'); //亮找零灯
//wf_displayvalue(lc_givechang) //显示金额
//wf_overtime(1);
dw_detail.Reset();
dw_master.Reset();
dw_master.InsertRow(0);
ids_stkoutprepare_master.Reset();
ids_stkoutprepare_detail.Reset();
ids_payment.Reset();
em_yingshou.Text = '0';
em_shishou.Text = '0';
em_zhaoling.Text = '0';
sle_scan.SetFocus();
//if not Event ue_OpenBox() then //打开银箱
// MessageBox('警告','注意:钱箱无法打开,可能线路连接问题或电压不稳造成,请联系技术人员
!',StopSign!);
//end if
//
//if not com_rest() then
// messagebox("错误","COM初始化失败!!!",StopSign!)
// return false;
//end if
Event ue_destroydatastore();
return true;