|
Запрос к базе MSSQL | ☑ | ||
---|---|---|---|---|
0
uvl
10.10.12
✎
16:45
|
Добрый день.
Имею такой код: .... Command = Новый COMОбъект("ADODB.Command"); Command.ActiveConnection = Connection; ParamArt = Command.CreateParameter("ParamArt",2,1,1,МаксАртикул); Command.Parameters.Append(ParamArt); Command.CommandText = "SELECT * FROM CoverProducts WHERE CoverProducts.idCoverProduct=:ParamArt"; RecordSet = Новый COMОбъект("ADODB.RecordSet"); RecordSet = Command.Execute(); Вопрос 1: Без WHERE все замечательно работает. С применением же параметра возникает ошибка: Ошибка при вызове метода контекста (Execute) RecordSet = Command.Execute(); по причине: Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Incorrect syntax near ':'. Вопрос 2: Как указать условие "больше" значения параметра ParamArt. Параметр Integer. Нужно выбрать значения которые больше него. Спасибо |
|||
1
shuhard
10.10.12
✎
16:46
|
(0) а зачем нужен параметр, пиши в лоб:
"SELECT * FROM CoverProducts WHERE CoverProducts.idCoverProduct="+МаксАртикул; |
|||
2
GANR
10.10.12
✎
16:47
|
(0) см.(1)
|
|||
3
shuhard
10.10.12
✎
16:51
|
(0) ну и конечно команда в коде лишняя
достаточно рекордсета |
|||
4
Живой Ископаемый
10.10.12
✎
16:53
|
2(1) Может он экспериментирует, ведь известно почему парметризованный запрос лучше.
|
|||
5
uvl
10.10.12
✎
16:53
|
(1) да я так первым делом и проверил. Не прошло. Щас еще раз проверю, может что то упустил
|
|||
6
Лефмихалыч
10.10.12
✎
16:57
|
(5) потому, что надо так:
"SELECT * FROM CoverProducts WHERE CoverProducts.idCoverProduct="+Формат(МаксАртикул,"ЧГ=0"); |
|||
7
uvl
10.10.12
✎
17:00
|
(6) блин, не подумал, да там пятизначный артикул. Спасибо
|
|||
8
sapphire
10.10.12
✎
17:01
|
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = Connection; ParamArt = Command.CreateParameter("ParamArt",2,1,1,МаксАртикул); Command.Parameters.Append(ParamArt); Command.CommandText = "SELECT * FROM CoverProducts WHERE CoverProducts.idCoverProduct=?"; RecordSet = Новый COMОбъект("ADODB.RecordSet"); RecordSet = Command.Execute(); |
|||
9
uvl
10.10.12
✎
17:05
|
Спасибо всем. Все заработало.
Проблема была в отсутствии Формата как подсказал Лефмихалыч |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |