19.05.2006, 17:32 | #1 |
Участник
|
Простой вопрос про AxaptaRecord.ExecuteStmt
В документации по IAxaptaRecord сказано, что выражение в методе ExecuteStmt должно быть вида "select * from %1 where %1.Name == ‘Axapta’"
Как я понял, условие можно формировать как хочешь, но при этом просто вместо имени таблицы вставлять %1. Но у меня не проходит запрос select * from %1 where %1.Name LIKE ‘*Axapta’ AND %1.FIELD=='1' Значения в базе точно есть, но ничего не находит. По отдельности %1.Name LIKE ‘*Axapta’ и %1.FIELD=='1' работают без проблем. Может нельзя задавать несколько условий одновременно? или какой-то другой синтаксис нужно использовать? |
|
19.05.2006, 17:39 | #2 |
Участник
|
The statement must be an Microsoft Axapta X++ statement
Замените AND на && |
|
19.05.2006, 18:00 | #3 |
Участник
|
Цитата:
Сообщение от Hezl
The statement must be an Microsoft Axapta X++ statement
Замените AND на && Всё равно после m_axRec.ExecuteStmt("SELECT * FROM %1 WHERE ((%1.SalesID LIKE '*ЗАК00001151') && (%1.LineNum=='1'))"); m_axRec.Found остается false. |
|
19.05.2006, 18:20 | #4 |
Участник
|
А что если выполнить 2 раза ExecuteStmt, сначала с одним условием, а потом со вторым?
Криво конечно, но всё же... Но я не теряю надежды на нормальный SELECT с 2-мя условиями |
|
19.05.2006, 19:16 | #5 |
Участник
|
Цитата:
Сообщение от murad
Заменил
Всё равно после m_axRec.ExecuteStmt("SELECT * FROM %1 WHERE ((%1.SalesID LIKE '*ЗАК00001151') && (%1.LineNum=='1'))"); m_axRec.Found остается false. С уважением, itfs. |
|
19.05.2006, 19:23 | #6 |
Участник
|
Цитата:
Сообщение от itfs
Очень странное условие. LineNum=='1' точно выдает вашу строку? Дело в том, что lineNum вещественное c целым может не совпасть.
Не мог предположить, что на простой свиду вопрос ответа нет... Последний раз редактировалось murad; 20.05.2006 в 17:19. |
|
22.05.2006, 11:40 | #7 |
Участник
|
Цитата:
Сообщение от murad
Точно-точно, проверял по отдельности.
Не мог предположить, что на простой свиду вопрос ответа нет... С уважением, itfs. |
|
|
За это сообщение автора поблагодарили: murad (1). |
22.05.2006, 17:06 | #8 |
Участник
|
Цитата:
Сообщение от itfs
Если вы уверены, что никакий грубой ошибки не допустили, то подобное разночтение следует адресовать оптимизатору БД, который в одном случае ищет по индексу и находит, а в другом - по таблице и не находит. Чисто теоретически такое возможно, но встречается крайне редко, лучше еще раз себя проверить. Выполните эти запросы не из Аксапты, сравните результаты.
С уважением, itfs. После поста itfs про float - сам виноват. И вправду надо LINENUM=1 без кавычек Теперь работает |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Банковский перевод. Простой вопрос | 0 | |||
Простой вопрос | 3 | |||
Очень-очень простой вопрос | 23 | |||
Еще 1 простой вопрос по пакетной обработке | 1 | |||
Простой вопрос | 2 |
|