Как отлаживать незавершенную строковую константу в VBScript?

Я получаю:

Строка 32, символ 16, незавершенная строковая константа, код: ошибка 800A0409.

Как я могу отладить это? Я создал сценарий VB для отчетов о запросах в ALM, и я буду планировать его в планировщике Windows.

Есть ли другой оптимизированный способ достижения цели?

Ссылка http://eyeontesting.com/questions/2159/sql-queries-in-api.html

Sub Query()

Dim qcServer, qcDomain, qcProject, qcUser, qcPassword, sSql

     qcServer = "XXXXXXXXXXX"
     qcDomain = "XXXXXXXXXXX"
     qcProject = "XXXXXXX"
     qcUser = "XXXXXXXX"
     qcPassword = "XXXXXXX"


 Set tdc = CreateObject("tdapiole80.tdconnection")

 'Check to see that the tdc object exists
 If tdc Is Nothing Then
 MsgBox "The tdc object is empty"
 End If

 'Establish the connection and log in
 tdc.InitConnectionEx qcServer
 tdc.Login qcUser, qcPassword
 tdc.Connect qcDomain, qcProject


 'Create the tdc Command Object
 Set oCommand = tdc.Command

 'Build the query

 sSql = "SELECT
TEST.TS_NAME AS "Test Case Name",
TESTCYCL.TC_STATUS as "Test Case Status",
CYCL_FOLD.CF_ITEM_NAME as "Test Set Folder Name",
--CYCL_FOLD.CF_ITEM_ID as "Folder ID",
CYCL_FOLD.CF_ITEM_PATH AS "Folder Path",
TESTCYCL.TC_USER_01 as 'ExternalDefectID',
TESTCYCL.TC_EXEC_DATE  AS 'Execution Date',
TESTCYCL.TC_ACTUAL_TESTER AS   'Tester'


FROM
CYCL_FOLD LEFT OUTER JOIN CYCLE ON CYCL_FOLD.CF_ITEM_ID = CYCLE.CY_FOLDER_ID
LEFT OUTER JOIN TESTCYCL ON TESTCYCL.TC_CYCLE_ID = CYCLE.CY_CYCLE_ID
LEFT JOIN TEST ON TEST.TS_TEST_ID = TESTCYCL.TC_TEST_ID

WHERE
CYCL_FOLD.CF_ITEM_PATH LIKE 'AAAAASAAHAADAAAAAAA%' /*Folder Path ID*/

ORDER BY
CF_ITEM_NAME"

 'Set the SQL command to the Test Coverage query
 oCommand.CommandText = sSql

 'Execute the query and store in the SQLResults resultset.
  Set SQLResults = oCommand.Execute

 'Prepare the worksheet
 Worksheets("Sheet1").Range("A:G").ClearContents

 'Set the header row titles.
 Worksheets("Sheet1").Range("A1") = "Test Case Name"
 Worksheets("Sheet1").Range("B1") = "Test Case Status"
 Worksheets("Sheet1").Range("C1") = "Test Set Folder Name"
 Worksheets("Sheet1").Range("D1") = "Folder Path"
 Worksheets("Sheet1").Range("E1") = "ExternalDefectID"
 Worksheets("Sheet1").Range("F1") = "Execution Date"
 Worksheets("Sheet1").Range("G1") = "Tester"


 'Start populating data on row 2 (leaving the header information above).
 iExcelRow = 2

 'Iterate through the query results and populate the worksheet.
 For iRecord = 1 To SQLResults.RecordCount

     'Write the values to the worksheet
      Worksheets("Sheet1").Range("A" & iExcelRow) = SQLResults.FieldValue("Test Case Name")
      Worksheets("Sheet1").Range("B" & iExcelRow) = SQLResults.FieldValue("Test Case Status")
      Worksheets("Sheet1").Range("C" & iExcelRow) = SQLResults.FieldValue("Test Set Folder Name")
      Worksheets("Sheet1").Range("D" & iExcelRow) = SQLResults.FieldValue("Folder Path")
      Worksheets("Sheet1").Range("E" & iExcelRow) = SQLResults.FieldValue("ExternalDefectID")
      Worksheets("Sheet1").Range("F" & iExcelRow) = SQLResults.FieldValue("Execution Date")
      Worksheets("Sheet1").Range("G" & iExcelRow) = SQLResults.FieldValue("Tester")

     'Increment the iteration
      iExcelRow = iExcelRow + 1
      SQLResults.Next
 Next


 'Disconnect from Quality Center
 If tdc.Connected = True Then
 tdc.Disconnect
 End If

 'Log off the server
 If tdc.LoggedIn Then
 tdc.Logout
 End If

 'Release the TDConnection object.
 tdc.ReleaseConnection

 'Adjust the column width
 Worksheets("Sheet1").Columns("A1:G1").EntireColumn.AutoFit

 Set SQLResults = Nothing
 Set oCommand = Nothing
 Set tdc = Nothing

 MsgBox "Done"

 End Sub

person Shuvendu 4Python    schedule 11.02.2018    source источник
comment
Здесь был дополнительный вопрос, который я удалил, чтобы не закрывать вопрос как слишком широкий.   -  person halfer    schedule 13.02.2018
comment
Рекомендуемая литература: вопросы, которые задают «Пожалуйста, помогите мне», как правило, требуют строго локализованного руководства или, в некоторых случаях, постоянной или частной помощи, что не подходит для нашего формата вопросов и ответов. Он также довольно расплывчатый, и его лучше заменить более конкретным вопросом. Пожалуйста, прочитайте Почему "Кто-нибудь может мне помочь?" не актуальный вопрос?.   -  person halfer    schedule 13.02.2018


Ответы (1)


Это, наверное, этот бит

 sSql = "SELECT
TEST.TS_NAME AS "Test Case Name",
TESTCYCL.TC_STATUS as "Test Case Status",
CYCL_FOLD.CF_ITEM_NAME as "Test Set Folder Name",
--CYCL_FOLD.CF_ITEM_ID as "Folder ID",
CYCL_FOLD.CF_ITEM_PATH AS "Folder Path",
TESTCYCL.TC_USER_01 as 'ExternalDefectID',
TESTCYCL.TC_EXEC_DATE  AS 'Execution Date',
TESTCYCL.TC_ACTUAL_TESTER AS   'Tester'


FROM
CYCL_FOLD LEFT OUTER JOIN CYCLE ON CYCL_FOLD.CF_ITEM_ID = CYCLE.CY_FOLDER_ID
LEFT OUTER JOIN TESTCYCL ON TESTCYCL.TC_CYCLE_ID = CYCLE.CY_CYCLE_ID
LEFT JOIN TEST ON TEST.TS_TEST_ID = TESTCYCL.TC_TEST_ID

WHERE
CYCL_FOLD.CF_ITEM_PATH LIKE 'AAAAASAAHAADAAAAAAA%' /*Folder Path ID*/

ORDER BY
CF_ITEM_NAME"

Для создания многострочных строк необходимо сцеплять более короткие строки. и используйте символ продолжения строки _, а для вставляйте двойные кавычки в строковые литералы, которые вам нужны, чтобы избежать их, удвоив их:

 sSql = "SELECT " & _
"TEST.TS_NAME AS ""Test Case Name""," & _
"TESTCYCL.TC_STATUS as ""Test Case Status""," & _
"CYCL_FOLD.CF_ITEM_NAME as ""Test Set Folder Name""," & _
"--CYCL_FOLD.CF_ITEM_ID as ""Folder ID""," & _
"CYCL_FOLD.CF_ITEM_PATH AS ""Folder Path""," & _
"TESTCYCL.TC_USER_01 as ""ExternalDefectID""," & _
"TESTCYCL.TC_EXEC_DATE  AS ""Execution Date"","  & _
"TESTCYCL.TC_ACTUAL_TESTER AS   ""Tester"""  & _
"FROM " & _
"CYCL_FOLD LEFT OUTER JOIN CYCLE ON CYCL_FOLD.CF_ITEM_ID = CYCLE.CY_FOLDER_ID " & _
"LEFT OUTER JOIN TESTCYCL ON TESTCYCL.TC_CYCLE_ID = CYCLE.CY_CYCLE_ID " & _
"LEFT JOIN TEST ON TEST.TS_TEST_ID = TESTCYCL.TC_TEST_ID " & _

"WHERE " & _
"CYCL_FOLD.CF_ITEM_PATH LIKE 'AAAAASAAHAADAAAAAAA%' /*Folder Path ID*/ " & _

"ORDER BY " & _
"CF_ITEM_NAME"
person oracle certified professional    schedule 11.02.2018