Имя: Пароль:
1C
1С v8
Ошибка в 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с-ник в своей жизни должен наступить на эти грабли =)
Независимо от того, куда вы едете — это в гору и против ветра!