#sql #excel #vba #odbc
Вопрос:
У меня есть инструкция VBA, которая вызывает хранимую процедуру на основе 5 — символьной буквенно AGENTID
-цифровой .
Соответствующий VBA
Dim CD As Date
Dim CT As Date
Dim AGENTID As String
SCMD = "legacy.MSAT_DISPUTE_LOAD " amp; _
"@CD = '" amp; CD amp; " 00:00:00" amp; "', " amp; _
"@CT = '" amp; "12/30/1899 " amp; CT amp; "', " amp; _
"@AGENTID = " amp; AGENTID
cn.Execute SCMD
Соответствующий SQL
@CD datetime, @CT datetime, @AGENTID nvarchar(10)
insert into Legacy.MSAT_Dispute
Select calldate, calltime, AgentID, Q2MSR, Oracle_id,1 as dispute, GETDATE() as DISP_DATE
from Custom.msat_combo
Where CallDate = @CD and CallTime = @CT and AgentID = @AGENTID
Нет проблем, когда переменная AGENTID
состоит из одних цифр, нет проблем, когда переменная AGENTID
начинается с буквы… проблема возникает, когда AGENTID
начинается с 1, затем пример буквы «1A600», затем при cn.Execute SCMD
запуске я получаю ошибку во время выполнения
Неправильный синтаксис рядом с «A600»
Мне нужно решение для решения этой проблемы, не уверен, преобразует ли соединение его в шестнадцатеричное число или что-то еще. Любые мысли или помощь приветствуются
Комментарии:
1. Может быть, попробуйте «@AGENTID = ‘» amp; AGENTID amp; «‘»