条件表达式中的数据类型冲突



我目前正试图在我的vbscript中使用一个db(.accdb文件(。

我的函数来自一个由hta文件执行的.vbs文件:

function dbCall(sAction, sPayload, sTable, sConCol, sConVal)
updateLocalDB()

Dim sConnectionString, objConnection, objRecordset, dbQuery, lTemp

Set objConnection = CreateObject("ADODB.Connection")
Set objRecordset = CreateObject("ADODB.Recordset")
sConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & localDB

'Query für die DB zusammenbauen
Select Case sAction
Case "get"
If sConCol = False Then
dbQuery = "SELECT " & sPayload & " FROM " & sTable
Else
dbQuery = "SELECT " & sPayload & " FROM " & sTable & " WHERE " & sConCol & " = '" & sConVal & "'"
End If
End Select

'do DB-Stuff
objConnection.open sConnectionString
objRecordset.Open dbQuery, objConnection
IF objRecordset.fields.Count = 1 Then
lTemp = objRecordset.fields(0)
End If
objRecordset.close
objConnection.close
dbCall = lTemp
End function

结果用于决定我的hta文件的设计。

我对它有多种用途。这样称呼它:

getSlotAmount = dbCall("get", "value", "config", "name", "MiPaCount")

根据返回一个数字

名称(短字符串(值(整数(
MiPaCount5

您缺少的是希望处理几种数据类型,并为字段名保留单词。因此,例如,您需要:

' For text:
dbQuery = "SELECT " & sPayload & " FROM " & sTable & " WHERE [" & sConCol & "] = '" & sConVal & "'"
' For numbers:
dbQuery = "SELECT " & sPayload & " FROM " & sTable & " WHERE [" & sConCol & "] = " & Str(sConVal) & ""
' For dates:
dbQuery = "SELECT " & sPayload & " FROM " & sTable & " WHERE [" & sConCol & "] = #" & Format(DateValue(sConVal), "yyyy/mm/dd") & "#"

您可以通过使用我的函数CSql来简化它,但我还没有在这样的场景中测试过它。

尝试替换此行:

iStart=dbCall("get"、"startzeit"、"slots"、"ID"、tmp(

这个:

iStart=dbCall("get"、"startzeit"、"slots"、"ID"、"tmp"(

您正在该参数中查找一个值,tmp(不带引号(应为数字值。

最新更新