【问题标题】:Using VBscript to read from an SQL database使用 VBscript 从 SQL 数据库中读取
【发布时间】:2023-04-10 15:58:01
【问题描述】:

我设置了一个 SQL 数据库,我想在其中使用 vbscript 来读取它。

这是我尝试使用的代码。

    SQL_Command_String = "SELECT * FROM Table1 JOIN Table2 WHERE Table1.ID = '5' AND Table2.Date LIKE '2011'"

Set Rs = SQLConnection.Execute(SQL_Command_String)
 DO WHILE NOT Rs.EOF
file1="./seminars/"&seminar_type&"/"&seminar_year&"/"&Rs("date")&"-"&Rs("year")&"_"&Rs("last")&".pdf"

seminar_year 和seminar_type 是我已经初始化并声明为seminar_year = 2011 和seminar_type = section1 的常量。

我相信我的 SQL_Command_String 与 LIKE 语句混淆了。我不确定它是否被正确使用。我只是想让它找到日期中包含 2011 的单元格,但我不确定我是否应该在日期的月份和日期部分包含通配符,如果是的话,什么通配符?

当我注释掉 Rs 的声明 (Set) 时,页面加载正常(除了它没有填写表格)。包含时显示的错误是 “处理URL时服务器发生错误,请联系系统管理员。 如果您是系统管理员,请单击此处了解有关此错误的更多信息。 "

这里只是将您带到一个关于运行 os IIS 7 的 microsoft 页面,我已经说明了这一点。

我真的被这个难住了阅读器类型。

如果 SO 社区有任何见解,我将不胜感激。谢谢,请知道我是 VBscripts 的新手

【问题讨论】:

  • 这个问题有 ASP.NET 吗?还是剃须刀?如果没有,那么您应该删除这些标签。它会让那些可能倾向于帮助你的人感到困惑。

标签: sql vbscript webpage


【解决方案1】:

我找到了有问题的代码。

Set Rs = SQLConnection.Execute(SQL_Command_String)

使用阅读器时不能使用 Set 关键字。我没有找到支持这一点的文档,但删除 Set 解决了这个问题。

其余的连接代码是正确的。谢谢大家的意见。

【讨论】:

【解决方案2】:

尝试删除AND Table2.Date LIKE '2011' 部分,看看它是否有效。我猜这是因为您的日期列是日期或日期时间数据类型,而不是 char 类型。我认为 LIKE 仅适用于 char 数据类型,因此您需要进行实际的日期比较,例如Table2.Date >= '1/1/2011' AND Table2.Date <= '12/31/2011' 或类似的东西,取决于您使用的数据库。

【讨论】:

  • 说“WHERE YEAR(Table2.Date)=2011”可能更容易。而且,Table1.id 可能是一个整数,而不是一个 varchar,所以他不应该在 5 周围加上引号。
  • 您是正确的,日期列被格式化为 int,数据库是 Microsoft SQL Server 2008 R2。但是,进行这些更改仍未解决问题。感谢您迄今为止的建议,尽管它们是肯定需要做出的改变。
猜你喜欢
  • 1970-01-01
  • 2017-01-24
  • 1970-01-01
  • 1970-01-01
  • 2012-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多