Mysql 在同一代码中使用两个For Next的VBScript

Mysql 在同一代码中使用两个For Next的VBScript,mysql,vbscript,Mysql,Vbscript,我需要在MySQL表中插入六个txt文件。我想将文件txt10.txt插入表D1,将文件txt20.txt插入表D2,将文件txt30.txt插入表D3,等等。但所有文本文件都插入到所有MySQL表中 我的代码如下: Arr1=数组(“txt10”、“txt20”、“txt30”、“txt40”、“txt50”、“txt60”) Arr2=数组(“D1”、“D2”、“D3”、“D4”、“D5”、“D6”) 对于K=0到UBound(Arr1) 对于I=0到UBound(Arr2) SQL=“FL

我需要在MySQL表中插入六个txt文件。我想将文件
txt10.txt
插入表D1,将文件
txt20.txt
插入表D2,将文件
txt30.txt
插入表D3,等等。但所有文本文件都插入到所有MySQL表中

我的代码如下:

Arr1=数组(“txt10”、“txt20”、“txt30”、“txt40”、“txt50”、“txt60”)
Arr2=数组(“D1”、“D2”、“D3”、“D4”、“D5”、“D6”)
对于K=0到UBound(Arr1)
对于I=0到UBound(Arr2)
SQL=“FLUSH TABLE`tbl\\\&Arr2(I)&”\\&Year(Date())&`
cn.Execute(SQL)
SQL=“加载数据本地填充:\\nOpen\\”&Arr1(K)和“.txt”
SQL=SQL&“进入表'tbl_uu3;'&Arr2(I)&“3;”&Year(Date())&”`字段以“;”结尾,行以“\n”结尾,忽略1行;”
cn.Execute(SQL)
下一个
下一个
编辑#1

在您的代码中,我有一个错误:

数组索引超出范围

在这一行:

tbl=Arr2(n)
新代码:

Arr1=数组(“txt10”、“txt20”、“txt30”、“txt40”、“txt50”、“txt60”)
Arr2=数组(“D1”、“D2”、“D3”、“D4”、“D5”、“D6”)
对于n=0到UBound(Arr1)
txt=Arr1(n)
tbl=Arr2(n)
SQL=“FLUSH TABLE`tbl\\\&tbl&”\&Year(Date())&`
cn.Execute(SQL)
SQL=“加载数据本地填充:\\nOpen\\”&txt&“.txt”
SQL=SQL&“进入表`tbl\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
cn.Execute(SQL)
下一个

嗯,是的。以这种方式运行两个
For
循环将提供两个输入数组元素的所有可能组合

实际需要的是使用单个循环并拾取每个数组的相应元素:

n=0到UBound(Arr1)的

txt=Arr1(n)
tbl=Arr2(n)
'现在将txt插入tbl
下一个
或者,您可以构建文件到表的映射(反之亦然),这样就不必依赖两个大小相同的数组:

Set map=CreateObject(“Scripting.Dictionary”)
地图。添加“txt10”、“D1”
地图。添加“txt20”、“D2”
...
对于map.Keys中的每个txt
tbl=映射(txt)
'现在将txt插入tbl
下一个


无论您选择哪种方式,都不要通过字符串连接来构建SQL查询。它会将您的代码打开。改用。

嗯,是的。以这种方式运行两个
For
循环将提供两个输入数组元素的所有可能组合

实际需要的是使用单个循环并拾取每个数组的相应元素:

n=0到UBound(Arr1)的

txt=Arr1(n)
tbl=Arr2(n)
'现在将txt插入tbl
下一个
或者,您可以构建文件到表的映射(反之亦然),这样就不必依赖两个大小相同的数组:

Set map=CreateObject(“Scripting.Dictionary”)
地图。添加“txt10”、“D1”
地图。添加“txt20”、“D2”
...
对于map.Keys中的每个txt
tbl=映射(txt)
'现在将txt插入tbl
下一个

无论您选择哪种方式,都不要通过字符串连接来构建SQL查询。它会将您的代码打开。改用。

如果出现“索引超出范围”错误,则两个数组中的元素数不相同。示例代码没有引发此错误。如果出现“索引超出范围”错误,则两个数组中的元素数不相同。示例代码不会引发此错误。