Vbscript 使用vbs在数据库中使用记录命名文件

Vbscript 使用vbs在数据库中使用记录命名文件,vbscript,recordset,Vbscript,Recordset,嗯,我正在尝试制作一个visualscript,它创建一个文件,其中写入了一个记录集,文件名作为数据库的记录,举个例子,我想要一个查询,查询写入文件,文件名是表的一行,下面是我的代码: Dim Filename Dim Connection Dim commandoSQL Dim Archivo Dim Nombre Dim objFSO Dim outputFile Call Main Sub Main Set objFSO=CreateObject("Scriptin

嗯,我正在尝试制作一个visualscript,它创建一个文件,其中写入了一个记录集,文件名作为数据库的记录,举个例子,我想要一个查询,查询写入文件,文件名是表的一行,下面是我的代码:

Dim Filename 
Dim Connection 
Dim commandoSQL 
Dim Archivo 
Dim Nombre 
Dim objFSO 
Dim outputFile 

Call Main
Sub Main
    Set objFSO=CreateObject("Scripting.FileSystemObject")
    Call startConnection()  Set commandoSQL = Connection.Execute("select rest_def.obj_num, hdr_def.line_01, hdr_def.line_02, hdr_def.line_03, hdr_def.line_04, hdr_def.line_05, hdr_def.line_06, trlr_def.line_01, trlr_def.line_02, trlr_def.line_03, trlr_def.line_04, trlr_def.line_05, trlr_def.line_06, trlr_def.line_07, trlr_def.line_08, trlr_def.line_09, trlr_def.line_10, trlr_def.line_11, trlr_def.line_12 from rest_def inner join hdr_def on hdr_def.obj_num rest_def.obj_num inner join trlr_def on trlr_def.obj_num = hdr_def.obj_num where hdr_def.obj_num = 101")
    'Archivo = "D:\archives\"
    Set Filename = Connection.Execute("Select obj_num FROM rest_def")
    Nombre = Filename.getString
    Archivo = "D:\archives\" + Nombre + ".txt"
    Set outputFile = objFSO.CreateTextFile(Archivo,True)
    outputFile.Write commandoSQL & vbCrLf
    outputFile.Close
    Call closeConnection()
End Sub

Sub startConnection()
    Set Connection = WScript.CreateObject("ADODB.Connection")
    Connection.Open "DSN=milo; UID=dataBase; PWD=password"
End Sub

Sub closeConnection()
    Connection.Close 
End Sub

因此,如果文件名的数据是7890,我希望文件名为7890.txt,所有记录集都写在文件中。。。请帮助,这是我第一次尝试vbs…

如果您想在VBScript中使用ADODB对象,我建议您阅读第一篇文章,以熟悉各种对象

在这种特殊情况下

Set Filename = Connection.Execute("Select obj_num FROM rest_def")
返回一个对象,要访问查询结果,您可以使用
字段
集合,并在本例中传递返回字段的顺序位置
0
,或者传递一个名为
obj_num
的字段

这将改变这条线

Nombre = Filename.getString

对于
ADODB.Recordset
对象,也没有类似于
getString()
的方法

Main()
子过程更改为

Sub Main
    Set objFSO=CreateObject("Scripting.FileSystemObject")
    Call startConnection()
    Set Filename = Connection.Execute("Select obj_num FROM rest_def")
    'Continue to iterate through the recordset until we reach the last
    'record (EOF).
    Do While Not Filename.EOF
        Nombre = Filename.Fields("obj_num").Value & ""
        Archivo = "D:\archives\" & Nombre & ".txt"
        Set outputFile = objFSO.CreateTextFile(Archivo, True)
        outputFile.Write commandoSQL & vbCrLf
        outputFile.Close
        'Move to next record
        Call Filename.MoveNext()
    Loop
    Call closeConnection()
End Sub

应该有用。这取决于您是否要为返回的每条记录创建一个文件,但根据您有限的解释,这是我的解释。

如果您要在VBScript中使用ADODB对象,我建议您阅读第一篇文章,以熟悉各种对象

在这种特殊情况下

Set Filename = Connection.Execute("Select obj_num FROM rest_def")
返回一个对象,要访问查询结果,您可以使用
字段
集合,并在本例中传递返回字段的顺序位置
0
,或者传递一个名为
obj_num
的字段

这将改变这条线

Nombre = Filename.getString

对于
ADODB.Recordset
对象,也没有类似于
getString()
的方法

Main()
子过程更改为

Sub Main
    Set objFSO=CreateObject("Scripting.FileSystemObject")
    Call startConnection()
    Set Filename = Connection.Execute("Select obj_num FROM rest_def")
    'Continue to iterate through the recordset until we reach the last
    'record (EOF).
    Do While Not Filename.EOF
        Nombre = Filename.Fields("obj_num").Value & ""
        Archivo = "D:\archives\" & Nombre & ".txt"
        Set outputFile = objFSO.CreateTextFile(Archivo, True)
        outputFile.Write commandoSQL & vbCrLf
        outputFile.Close
        'Move to next record
        Call Filename.MoveNext()
    Loop
    Call closeConnection()
End Sub
应该有用。这取决于您是否要为返回的每条记录创建一个文件,但根据您有限的解释,这是我的解释