![]() |
|
Ошибка в SQL запросе к БД Access | ☑ | ||
---|---|---|---|---|
0
Pro-tone
модератор
09.06.12
✎
14:38
|
Соединение = Новый ComОбъект("ADODB.Connection");
СтрокаПодключения="Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=GDS.mdb;Uid=2;Pwd=2;"; Соединение.Open(СтрокаПодключения); RS = Новый ComОбъект("ADODB.Recordset"); Для Каждого ТекСтрока Из ТаблицаДанных Цикл //Артикул = Число(ТекСтрока.Артикул); ТекстЗапроса = "SELECT * FROM Declare WHERE Goods_ID=10 831;"; Rs.Open(ТекстЗапроса,Соединение); //ЗАТЫК ИДЕТ ТУТ!! Пока Rs.EOF()=0 Цикл ТекСтрока.НомерГТД = RS.Fields("Declare_N").value; Rs.MoveNext(); КонецЦикла; КонецЦикла; Rs.Close(); Соединение.Close(); {Форма.Форма.Форма(148)}: Ошибка при вызове метода контекста (Open) Rs.Open(ТекстЗапроса,Соединение); по причине: Произошла исключительная ситуация (Microsoft OLE DB Provider for ODBC Drivers): [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression '(Goods_ID=10 831)'. Goods_ID – тип «число» Не пойму вообще в чем дело, писал намного более сложные запросы и все было нормально, а тут ругается, что какой-то оператор пропущен Убираю Where – все нормально становится. Помогите кто знает. |
|||
1
shuhard
09.06.12
✎
15:09
|
(0) совесть имей,
ну куда ты с пробелом в числе лезешь Goods_ID=10 831 убери его форматом |
|||
2
Жан Пердежон
09.06.12
✎
15:22
|
тебе ж провайдер явно говорит: "10 831" - не число
|
|||
3
Pro-tone
модератор
15.06.12
✎
20:16
|
угу че-то ступил я, нашел вот решение уже давно, но пишу может кому надо будет тоже: Формат(КакоеТоЧисло,"ЧГ=0;") либо СтрЗаменить(КакоеТоЧисло, Символы.НПП,""), (1) и (2) спасибо
|
|||
4
shuhard
15.06.12
✎
20:26
|
(3) что ж
каждый 1с-ник в своей жизни должен наступить на эти грабли =) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |