【问题标题】:How to copy from a database to a text file using VBScript?如何使用 VBScript 从数据库复制到文本文件?
【发布时间】:2009-09-10 08:47:15
【问题描述】:

我有一个 C# 代码示例,但它使用的是streamWriter。它必须与FileSystemObject rite 有关。如果是,我应该使用什么方法?我想使用 VBScript WSH 进行编码,我的数据库是 MS SQL Server 2005

任何解决方案、参考资料或指南都会有所帮助。

using (StreamWriter tw = File.AppendText("c:\\INMS.txt"))
{
    using (SqlDataReader reader = cmd.ExecuteReader())
    {
        tw.WriteLine("id, ip address, message, datetime");
        while (reader.Read())
        {
            tw.Write(reader["id"].ToString());
            tw.Write(", " + reader["ip"].ToString());
            tw.Write(", " + reader["msg"].ToString());
            tw.WriteLine(", " + reader["date"].ToString());
        }
        tw.WriteLine("Report Generate at : " + DateTime.Now);
        tw.WriteLine("---------------------------------");
        tw.Close();
        reader.Close();
    }
}

【问题讨论】:

  • 您到底想要什么?你想让我们把这个脚本转换成 vb 还是你需要一个等效的?
  • 我想要它在 VBScript 中。 c# 代码是我想要的示例。很抱歉造成混乱
  • @Mitch:试图撤消反对票,但你对我来说有点快。并非我们所有人都能在醒着的每一分钟都在观看 SO 上发生的一切。放慢速度,放慢速度。

标签: sql-server database sql-server-2005 vbscript filestream


【解决方案1】:

在 VBScript 中,您需要 ADODB 对象和来自 Scripting 库的 FileSystemObject。类似于:-

Dim conn: Set conn = CreateObject("ADODB.Connection")
conn.Open "an ole DB mysql connection string", usernameIfneeded, passwordIfNeeded

Dim cmd : Set cmd = CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
cmd.CommandText = "your SQL code here"
cmd.CommantType = 1 ''# adCmdText Command text is a SQL query

Dim rs : Set rs = cmd.Execute

Dim fs : Set fs = CreateObject("Scripting.FileSystemObject")
Dim textStream : Set textStream = fs.OpenTextFile("c:\inms.txt", 8, True)
textStream.WriteLine "id, ip address, message, datetime"
Do Until rs.EOF

   textStream.Write rs("id") & "," 
   textStream.Write rs("ip") & "," 
   textStream.Write rs("msg") & "," 
   textStream.WriteLine rs("date")   

  rs.MoveNext
Loop

textStream.Close
rs.Close
conn.Close

【讨论】:

  • Tqvm 为解决方案,但关闭后,不需要同时设置 rs 和 conn = Nothing ?并且所有的sql命令都必须使用并设置为ADODB.Command?
  • 通常这种代码应该被划分为函数。由于局部变量 rs 和 conn 将超出范围并在函数退出时被释放。我个人不喜欢将不必要的设置添加到虚无中,但有些人这样做似乎会得到一种温暖模糊的安慰感。
猜你喜欢
  • 1970-01-01
  • 2013-09-12
  • 1970-01-01
  • 2014-01-02
  • 2010-10-25
  • 1970-01-01
  • 2014-08-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多