下面这个语句只有1千多行记录,但是经常会超时已过期
我要合并两个数据库的一些表,所以开了两个connection
cn1 是A公司的
cn2 是B公司的
我的思路是:
第一步.建立一个公共的临时表public_jk_jnl,这个表放在cn1 所在的数据库中
第二步.在A公司的数据库中,执行下面的语句一,先插入到临时表#Jk_Jnl,经过一些筛选或者更新处理后,再插入到publicc_jk_jnl
第三步.在B公司的数据库中,执行下面的语句一,先插入到临时表#Jk_Jnl,经过一些筛选或者更新处理后,再插入到publicc_jk_jnl
可能第二步是A公司的数据比较少吧,一般几百行,我每次执行第二步都是成功的,即执行下面的语句一;但是执行到第三步的时候,就提示"超时已过期"。
其实第三步B公司下面这个筛选的数据也不多,不超过2千行就报错。
把上面三步变成我的代码是这样的
cn1.execute "delete from public_jk_jnl"
cn1.excute "if object_id('tempdb..#jK_Jnl') is not null drop table #Jk_Jnl"
cn1.execute 语句一 '这里不会错
cn1.execute "inert into public_jk_jnl select * from #Jk_Jnl""
cn1.execute "drop table #Jk_Jnl"
cn2.execute "delete from public_jk_jnl"
cn2.excute "if object_id('tempdb..#jK_Jnl') is not null drop table #Jk_Jnl"
cn2.execute 语句一 ’ 这里错
cn2.execute "inert into public_jk_jnl select * from #Jk_Jnl"
cn2.execute "drop table #Jk_Jnl"
我尝试的解决方法:
1. cn1和cn2的ado连接,connect timeout=0,也不行,修改到1000000也不行
我的疑问:
下面这段代码有什么问题,我的步骤哪里错了.
语句一
SELECT v.FVoucherID FVoucherID,v.FEntryCount,ve.FEntryID,v.FYear,v.FPeriod,v.FDate, v.FTransDate,
v.FGroupID, vg.FName FGroupName, v.FNumber,v.FSerialNum,v.FReference FReference, v.FExplanation FVExplanation,
ve.FExplanation FEExplanation, ve.FAccountID FAccountID, ve.FDetailID FDetailID, a.FNumber FAccountNumber,
a.FName FAccountName, ve.FAccountID2 FSideAccountID, b.FNumber FSideAccountNumber,
b.FName FSideAccountName,FSideDetailID=0,a.FContact FContact, ve.FSettleTypeID,
ISNULL(e.Fname,SPACE(0)) FSettleTypeName,ve.FSettleNo FSettleNumber, FTplTypeName=tp.FTplTypeName,
FModuleName=tp.FModuleName, ve.FTransNo , ve.FCurrencyID FCurrencyID, c.FNumber FCurrencyNumber,
c.FName FCurrencyName, ve.FExchangeRate, ve.FDC, ve.FAmountFor FAmountFor,ve.FAmount FAmount,
v.FPosted,a.FDelete ,'aaa' as fitemnumber,'aaaa' as fitemname INTO #Jk_Jnl
FROM t_Voucher v INNER JOIN t_VoucherGroup vg ON v.FGroupID = vg.FGroupID
LEFT OUTER JOIN t_VoucherTplType tp on v.FTranType=tp.FTplTypeID
INNER JOIN t_VoucherEntry ve ON v.FVoucherID = ve.FVoucherID
INNER JOIN t_Account a ON ve.FAccountID = a.FAccountID
LEFT OUTER JOIN ( Select * FROM t_Account b ) b ON ve.FAccountID2 = b.FAccountID
INNER JOIN t_Currency c ON ve.FCurrencyID = c.FCurrencyID
LEFT OUTER JOIN t_Settle e ON ve.FSettleTypeID=e.FitemID AND e.FitemID<>0
WHERE FDate Between '2013-03-01' AND '2013-03-31' AND a.FNumber>='1122' AND a.FNumber<='1122.zzzzzzz'
AND ve.FCurrencyID = 1