一个有难度的问题,高分求助
我在给客户做一个接口程序,由于两个系统都是ORACLE的数据库,但字符集不同,因此,我在一台电脑上安装了ora73和ora8i两个客户端程序。分别连接两台服务器。连接73的实例名为SERVER_HIS,连接8i的实例名为yks_test
程序处理如下:
1、在主应用上脚本如下:
string ls_logpass,ls_logid,ls_servername
string ls_logpass_yb,ls_logid_yb,ls_servername_yb
string ls_patient_id,LS_YB,ls_id
//连接HIS服务器
ls_logpass = ProfileString('insur.ini', "DATABASE","LogPassword", "")
ls_logid = ProfileString('insur.ini', "DATABASE","logid", "")
ls_servername = ProfileString('insur.ini', "DATABASE","servername", "")
SQLCA.DBMS = "O73 ORACLE 7.3"
SQLCA.LogPass = ls_logpass
SQLCA.ServerName = ls_servername
SQLCA.LogId = ls_logid
SQLCA.AutoCommit = False
SQLCA.DBParm = ""
connect ;
if sqlca.sqlcode = -1 then
return
end if
//连接医保服务器
gtrans_yb = create Transaction
ls_logpass_yb = ProfileString('insur.ini', "DATABASE_YB","LogPassword", "")
ls_logid_yb = ProfileString('insur.ini', "DATABASE_YB","logid", "")
ls_servername_yb = ProfileString('insur.ini', "DATABASE_YB","servername", "")
gtrans_yb.DBMS = "O84 Oracle8/8i (8.x.4+)"
gtrans_yb.LogPass = ls_logpass_yb
gtrans_yb.ServerName = ls_servername_yb
gtrans_yb.LogId = ls_logid_yb
gtrans_yb.AutoCommit = False
gtrans_yb.DBParm = ""
connect using gtrans_yb;
if gtrans_yb.sqlcode = -1 then
return
end if
open(w_main)
在w_main的OPEN事件中的程序如下:
datastore lds_GetInsurPatient
string ls_charge_type,ls_patient_id,ls_yb_zyh,ls_ordered_by
long ll_patient,ll_i,ll_row
int li_visit_id
string ls_item_class,ls_item_code,ls_item_spec,ls_units,ls_his_item_name,ls_djh
dec ld_je,ld_sl,ld_dj,ld_zfje
long ll_djh,ll_item_no
datetime ldt_bill_date_time
int li_temp
string ls_xmbm,ls_czmlb,ls_ybxmdm,ls_ybxmmc,ls_dept,ls_dept_code,ls_tjtzbz
li_temp = 0
dw_1.settransobject(gtrans_yb)
//得到在院医保病人
ls_charge_type = ProfileString('insur.ini', "APP","CHARGE_TYPE", "")
lds_GetInsurPatient = create datastore
lds_GetInsurPatient.dataobject = 'd_get_insur_patient'
lds_GetInsurPatient.settransobject(sqlca)
lds_GetInsurPatient.retrieve(ls_charge_type)
//通过循环取每个医保病人
ll_patient = lds_GetInsurPatient.rowcount()
for ll_i = 1 to ll_patient
ls_patient_id = lds_GetInsurPatient.getitemstring(ll_i,'patient_id')
IF LS_PATIENT_ID ='D50000' THEN
MESSAGEBOX("","ABC")
END IF
li_visit_id = lds_GetInsurPatient.getitemnumber(ll_i,'visit_id')
ls_dept = lds_GetInsurPatient.getitemstring(ll_i,'dept_admission_to')
//到对照表去医保科室
select yb_code into :ls_dept_code from insurance.hisdept_vs_ybdept where his_dept_code =:ls_dept;
if sqlca.sqlcode = 100 then
ls_dept_code = '12'
end if
//到医保库中取病人信息,判断是否为本医保病人
SELECT zyh into :ls_yb_zyh from sys_yw_brjbxx where zyh=:ls_patient_id using gtrans_yb;
// ll_row = DW_1.retrieve(ls_patient_id)
//如果是本医保病人,则进行数据导入
if sqlca.sqlcode = 0 then
//取医保单据号
Select maxdjh into :ls_djh from sys_dm_maxdjh where djdm= '04' using gtrans_yb;
.............
在上面这段程序中,当我执行
SELECT zyh into :ls_yb_zyh from sys_yw_brjbxx where zyh=:ls_patient_id using gtrans_yb;
时,取不出数据来,而我在sql下直接写这条语句是正确的,请问这是怎么回事啊?
是不是和两个客户端有关?
程序处理如下:
1、在主应用上脚本如下:
string ls_logpass,ls_logid,ls_servername
string ls_logpass_yb,ls_logid_yb,ls_servername_yb
string ls_patient_id,LS_YB,ls_id
//连接HIS服务器
ls_logpass = ProfileString('insur.ini', "DATABASE","LogPassword", "")
ls_logid = ProfileString('insur.ini', "DATABASE","logid", "")
ls_servername = ProfileString('insur.ini', "DATABASE","servername", "")
SQLCA.DBMS = "O73 ORACLE 7.3"
SQLCA.LogPass = ls_logpass
SQLCA.ServerName = ls_servername
SQLCA.LogId = ls_logid
SQLCA.AutoCommit = False
SQLCA.DBParm = ""
connect ;
if sqlca.sqlcode = -1 then
return
end if
//连接医保服务器
gtrans_yb = create Transaction
ls_logpass_yb = ProfileString('insur.ini', "DATABASE_YB","LogPassword", "")
ls_logid_yb = ProfileString('insur.ini', "DATABASE_YB","logid", "")
ls_servername_yb = ProfileString('insur.ini', "DATABASE_YB","servername", "")
gtrans_yb.DBMS = "O84 Oracle8/8i (8.x.4+)"
gtrans_yb.LogPass = ls_logpass_yb
gtrans_yb.ServerName = ls_servername_yb
gtrans_yb.LogId = ls_logid_yb
gtrans_yb.AutoCommit = False
gtrans_yb.DBParm = ""
connect using gtrans_yb;
if gtrans_yb.sqlcode = -1 then
return
end if
open(w_main)
在w_main的OPEN事件中的程序如下:
datastore lds_GetInsurPatient
string ls_charge_type,ls_patient_id,ls_yb_zyh,ls_ordered_by
long ll_patient,ll_i,ll_row
int li_visit_id
string ls_item_class,ls_item_code,ls_item_spec,ls_units,ls_his_item_name,ls_djh
dec ld_je,ld_sl,ld_dj,ld_zfje
long ll_djh,ll_item_no
datetime ldt_bill_date_time
int li_temp
string ls_xmbm,ls_czmlb,ls_ybxmdm,ls_ybxmmc,ls_dept,ls_dept_code,ls_tjtzbz
li_temp = 0
dw_1.settransobject(gtrans_yb)
//得到在院医保病人
ls_charge_type = ProfileString('insur.ini', "APP","CHARGE_TYPE", "")
lds_GetInsurPatient = create datastore
lds_GetInsurPatient.dataobject = 'd_get_insur_patient'
lds_GetInsurPatient.settransobject(sqlca)
lds_GetInsurPatient.retrieve(ls_charge_type)
//通过循环取每个医保病人
ll_patient = lds_GetInsurPatient.rowcount()
for ll_i = 1 to ll_patient
ls_patient_id = lds_GetInsurPatient.getitemstring(ll_i,'patient_id')
IF LS_PATIENT_ID ='D50000' THEN
MESSAGEBOX("","ABC")
END IF
li_visit_id = lds_GetInsurPatient.getitemnumber(ll_i,'visit_id')
ls_dept = lds_GetInsurPatient.getitemstring(ll_i,'dept_admission_to')
//到对照表去医保科室
select yb_code into :ls_dept_code from insurance.hisdept_vs_ybdept where his_dept_code =:ls_dept;
if sqlca.sqlcode = 100 then
ls_dept_code = '12'
end if
//到医保库中取病人信息,判断是否为本医保病人
SELECT zyh into :ls_yb_zyh from sys_yw_brjbxx where zyh=:ls_patient_id using gtrans_yb;
// ll_row = DW_1.retrieve(ls_patient_id)
//如果是本医保病人,则进行数据导入
if sqlca.sqlcode = 0 then
//取医保单据号
Select maxdjh into :ls_djh from sys_dm_maxdjh where djdm= '04' using gtrans_yb;
.............
在上面这段程序中,当我执行
SELECT zyh into :ls_yb_zyh from sys_yw_brjbxx where zyh=:ls_patient_id using gtrans_yb;
时,取不出数据来,而我在sql下直接写这条语句是正确的,请问这是怎么回事啊?
是不是和两个客户端有关?
...全文
相关推荐
JAVA写的数独,附带生成唯一解和各种难度的算法
基于挖洞思想的数独游戏生成算法.pdf"很可能详细介绍了这种算法的工作原理和实现步骤,包括如何确定初始的已填数字布局以产生不同难度的数独。在生成唯一解的数独时,算法需要确保每个数独谜题有且只有一个解。
各级难度试题分值比例的确定 (2004年)
本文主要探讨了在教育考试评分体系中,如何科学地确定各级难度试题的分值比例。作者基于考分呈正态分布的假设,假设最高分不超过98分的概率为99.7%,这反映了对考试成绩分布的统计理解。通过计算得到考分期望
408考研 2019年天勤数据结高分笔记pdf
这四门课程难度较高,对于准备考研的学生来说,复习起来有一定的挑战性。因此,编写的高分笔记往往都是针对408科目的备考者。
一个难度可叠加的代码
一个难度可叠加的代码,当楼层越高,编写的难度越大,
软件测试工作中2个高难度问题的思考
在软件测试工作中,面对两个高难度问题,它们的核心在于如何确保测试质量在面临需求变更和测试用例频繁修改时保持稳定。这两个问题是:1. 最大限度降低需求变更对测试质量的影响: - 需求变更是一个


