Имя: Пароль:
1C
1С v8
Запрос к базе 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
Спасибо всем. Все заработало.
Проблема была в отсутствии Формата как подсказал Лефмихалыч
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший