Как устранить ошибку "Expected Expression"?

Как правильно перенести код SQL запроса на новую строку без возникновения ошибки компиляции "Expected Expression"? У меня есть следующий код: 

```vbscript
SQLStr = "SELECT cellName as NSector, SUBSTRING(CAST(cellName as CHAR),1,6) as SiteName " & _
            "FROM LNCEL_begin " & _
            "LIMIT 5 " & _
```

Сейчас он работает только в одном длинном объявлении:

```vbscript
SQLStr = "SELECT cellName as NSector, SUBSTRING(CAST(cellName as CHAR),1,6) as SiteName FROM LNCEL_begin LIMIT 5"
```

Но мне нужно разделить код, так как запросы могут быть очень большими. Как правильно это сделать?
  • 5 ноября 2024 г. 2:12
Ответы на вопрос 2
Ошибка "Expected Expression" в VBScript возникает, когда синтаксис не соответствует ожидаемому. В вашем случае проблема связана с тем, что вы не правильно завершили строку запроса. В конце вашего первого блока кода в строке с `LIMIT 5` вы оставили символ подчеркивания (`_`), который указывает на продолжение строки, но не указали следующий фрагмент кода.

Чтобы правильно разбить SQL-запрос на несколько строк, нужно убедиться, что последняя строка не заканчивается символом подчеркивания, если у вас больше нет дополнений к строке. Вот как это можно сделать:

```vbscript
SQLStr = "SELECT cellName as NSector, SUBSTRING(CAST(cellName as CHAR),1,6) as SiteName " & _
          "FROM LNCEL_begin " & _
          "LIMIT 5"
```

В этом случае, поскольку `LIMIT 5` — это последняя часть строки, она завершается без продолжения на следующей строке. Таким образом, в коде нет необходимости указывать продолжение строки после последнего элемента SQL-запроса.

Если же у вас есть дополнительные части запроса, которые вы хотите добавить, например, `ORDER BY`, вы можете сделать это следующим образом:

```vbscript
SQLStr = "SELECT cellName as NSector, SUBSTRING(CAST(cellName as CHAR),1,6) as SiteName " & _
          "FROM LNCEL_begin " & _
          "LIMIT 5 " & _
          "ORDER BY NSector"
```

Обратите внимание, что каждый фрагмент запроса заканчивается оператором конкатенации (`&`) за исключением последнего. Таким образом, код SQL будет правильно собираться в одну строку без возникновения ошибок компиляции.
"LIMIT 5 " & _ - ожидает что строка будет продолжена. 

SQLStr = "SELECT cellName as NSector, SUBSTRING(CAST(cellName as CHAR),1,6) as SiteName " & _
            "FROM LNCEL_begin " & _
            "LIMIT 5"

Разбиения одной инструкции на несколько строк: https://learn.microsoft.com/ru-ru/dotnet/visual-ba...
Похожие вопросы