string wellname_temp
string temp_table_wellname,temp_table_order,temp_table_style,temp_table_depth,temp_table_formation,temp_table_rock
string temp_table_begintime,temp_table_finishtime,temp_table_losstime,temp_table_bha,temp_table_complex,temp_table_doing,temp_table_reason,temp_table_knowing
integer check_n1,i,check_n
check_n1=0
if rb_1.checked=true then
cb_1.enabled=false
temp1[]=otemp1[]
temp2[]=otemp2[]
temp3[]=otemp3[]
temp4[]=otemp4[]
temp5[]=otemp5[]
temp6[]=otemp6[]
temp7[]=otemp7[]
temp8[]=otemp8[]
temp9[]=otemp9[]
temp10[]=otemp10[]
temp11[]=otemp11[]
temp12[]=otemp12[]
temp13[]=otemp13[]
temp14[]=otemp14[]
wellname_temp=trim(sle_1.text)
dw_1.settransobject(sqlca)
declare cn_check1 cursor for select 井名,复杂序号,复杂类型,复杂井深,发生地层,岩性,发生时间,解除时间,损失时间,钻具组合,情况描述,处理过程,原因,认识 from complex_info where 井名=:wellname_temp ;
open cn_check1;//打开游标
check_n1 = 0
do while true
fetch cn_check1
into :temp_table_wellname,:temp_table_order,:temp_table_style,:temp_table_depth,:temp_table_formation,:temp_table_rock,:temp_table_begintime,:temp_table_finishtime,:temp_table_losstime,:temp_table_bha,:temp_table_complex,:temp_table_doing,:temp_table_reason,:temp_table_knowing;
if sqlca.sqlcode=100 then
messagebox("查询提示","查询完毕!")
exit
end if
check_n1++
temp1[check_n1]=temp_table_wellname
temp2[check_n1]=temp_table_order
temp3[check_n1]=temp_table_style
temp4[check_n1]=temp_table_depth
temp5[check_n1]=temp_table_formation
temp6[check_n1]=temp_table_rock
temp7[check_n1]=temp_table_begintime
temp8[check_n1]=temp_table_finishtime
temp9[check_n1]=temp_table_losstime
temp10[check_n1]=temp_table_bha
temp11[check_n1]=temp_table_complex
temp12[check_n1]=temp_table_doing
temp13[check_n1]=temp_table_reason
temp14[check_n1]=temp_table_knowing
loop
close cn_check1;//关闭游标,运行到此,老是关闭程序,不知为何?
dw_1.settransobject(sqlca)
for i =1 to check_n1
insert into temp_table2(井名,复杂序号,复杂类型,复杂井深,发生地层,岩性,发生时间,解除时间,损失时间,钻具组合,情况描述,处理过程,原因,认识)
values(:temp1[i],:temp2[i],:temp3[i],:temp4[i],:temp5[i],:temp6[i],:temp7[i],:temp8[i],:temp9[i],:temp10[i],:temp11[i],:temp12[i],:temp13[i],:temp14[i]);
if sqlca.sqlcode=0 and i= check_n1 then
messagebox("提示","插入数据完毕!")
end if
if sqlca.sqlcode=-1 then
messagebox("提示","插入数据失败!"+sqlca.sqlerrtext,exclamation!)
exit
end if
next
dw_1.update( )
dw_1.retrieve( )
cb_3.text='该井共发生'+string(check_n1)+'次复杂情况'
temp_checknum=string(check_n1)
end if
------解决方案--------------------
改用datastore 来处理吧。
------解决方案--------------------
把以下语句屏蔽后,还会不会关闭
- C/C++ code
temp1[check_n1]=temp_table_wellname temp2[check_n1]=temp_table_order temp3[check_n1]=temp_table_style temp4[check_n1]=temp_table_depth temp5[check_n1]=temp_table_formation temp6[check_n1]=temp_table_rock temp7[check_n1]=temp_table_begintime temp8[check_n1]=temp_table_finishtime temp9[check_n1]=temp_table_losstime temp10[check_n1]=temp_table_bha temp11[check_n1]=temp_table_complex temp12[check_n1]=temp_table_doing temp13[check_n1]=temp_table_reason temp14[check_n1]=temp_table_knowing