gpt4 book ai didi

sql - VB6将文件路径插入SQL FROM子句

转载 作者:行者123 更新时间:2023-12-03 01:15:21 24 4
gpt4 key购买 nike

我正在 Windows 7 桌面上使用 VB6 读取和处理文本文件,但在将变量传递给 SELECT 语句时遇到了问题。我的代码是:

Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim cm As ADODB.Command

Set conn = New ADODB.Connection
conn.Open _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & App.Path & ";" & _
"Extended Properties=""text;HDR=No;FMT=Delimited( )"""

inputFile = "C:\test data\test data.asc"

Set cm = New ADODB.Command
cm.ActiveConnection = conn
cm.CommandType = adCmdText

cm.CommandText = "SELECT * FROM " & inputFile
Set rs = New ADODB.Recordset
rs.Open cm, , adOpenKeyset, adLockOptimistic

问题是输入文件的路径名包含空格,当我运行上面的代码时,它在 rs.OPen 行失败,并显示错误,指出 FROM 子句中的语法错误。如果 inputFile 中的路径不包含空格,则一切正常。

我在 inputFile 周围尝试了“' [] 等的多种组合,但总是收到语法错误或另一个错误,指出无法找到 inputFile.txt。

谁能给我正确的方法来处理 SQL 语句中带有空格的路径/文件名?

最佳答案

应始终引用为数据源提供的值以避免此类问题。您可以使用引号 "或撇号 ' 来执行此操作,就像对扩展属性值所做的那样。

然后使用数据源目录中的文件名作为表名至少使用方括号[]“引用”它,并且最好将 .文件扩展名由 # 字符组成。

没有“用于文本文件的 OLEDB 提供程序”,但您的示例显示了 Jet 4.0 OLEDB 提供程序及其文本可安装 ISAM 的使用,这很好。

Processing Text Databases总体上提供了有关此主题的大量信息,大多数示例都使用 VBScript,但它几乎也适用于 VB6。

关于sql - VB6将文件路径插入SQL FROM子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12926585/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com