Vbscript 使用vbs在数据库中使用记录命名文件
嗯,我正在尝试制作一个visualscript,它创建一个文件,其中写入了一个记录集,文件名作为数据库的记录,举个例子,我想要一个查询,查询写入文件,文件名是表的一行,下面是我的代码: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
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
应该有用。这取决于您是否要为返回的每条记录创建一个文件,但根据您有限的解释,这是我的解释