![]() |
#1 |
Участник
|
Помогите такой вопрос написать в Аксапте
Запрос на SQL
Код: select * from Table where a1 not like '%*' |
|
![]() |
#2 |
Модератор
|
X++: select * from Table where a1 like ! '/*' |
|
![]() |
#3 |
Участник
|
Типы операнда не совместимы с оператором.
хотя a1 тип String |
|
![]() |
#4 |
Участник
|
Без восклицательного знака компилиться
|
|
![]() |
#5 |
Axapta
|
X++: static void Job46(Args _args) { Query q=new Query(); QueryBuildDataSource qbds; QueryRun qr; VendTable vendTable; ; q.addDataSource(tableNum(VendTable)).addRange(fieldNum(Vendtable, accountNum)).value('!*а'); qr = new QueryRun(q); while (qr.next()) { vendTable = qr.get(tableNum(VendTable)); info (vendTable.AccountNum); } } |
|
![]() |
#6 |
Участник
|
Во-первых, Георгий перепутал символ слеша - нужен для escaping'га - back-slash ('\')
А во-вторых , нужно ! поставить перед всем условием а не перед значением where !(a1 like '\*'); Но даже так запрос не будет отрабатывать так как вам нужно. По идее, надо бы написать что-то типа '*\*' - но компилятор не хочет понимать эту строку так, как нам бы этого хотелось |
|
![]() |
#7 |
Axapta
|
Хм... Надо, чтобы именно на символ '*' не заканчивался?
|
|
![]() |
#8 |
Axapta
|
X++: static void Job46(Args _args) { Query q=new Query(); QueryBuildDataSource qbds; QueryRun qr; VendTable vendTable; ; q.addDataSource(tableNum(VendTable)).addRange(fieldNum(Vendtable, accountNum)).value('!*\\*'); qr = new QueryRun(q); while (qr.next()) { vendTable = qr.get(tableNum(VendTable)); info (vendTable.AccountNum); } } |
|
![]() |
#9 |
Axapta
|
Или
X++: while select * from VendTable where !(vendTable.AccountNum like '*\\*') { info (vendTable.AccountNum); } |
|
![]() |
#10 |
Участник
|
|
|
![]() |
#11 |
Участник
|
Спасибо за помощь!
|
|
![]() |
#12 |
Axapta
|
Проверь.
![]() PS Про то, что вместо спасибо кликают на зеленый квадратик говорить не буду, т.к. Вы все равно не сможете этого сделать. ![]() ![]() Последний раз редактировалось oip; 25.09.2006 в 12:56. |
|
![]() |
#13 |
Участник
|
Проверил на формочке, вставлял в "Найти"
С одним слэшом нормально работает, а вот с двумя вернул пару строк, у которых есть "\" в имени ![]() |
|
![]() |
#14 |
Участник
|
Ты проверь в запросе - в запросе оно правильно отработает - так как там по-другому escaping спец.символов делается.
|
|