|  29.10.2008, 12:09 | #1 | 
| Участник | Как в Аксапте написать «*» 
			
			Вопрос я так понимаю тривиальный, тем не менее поиск по форуму ничего не дал.  Как в Аксапте написать «*» ? То есть, есть запрос вида: Select Table where Table.field == ‘*’; Нужно чтобы выбирались ВСЕ поля, пробовал пустые скобки не хочет?!   В программе, нужно что бы по условию, либо был фильтр по полю либо его не было.. | 
|  | 
|  29.10.2008, 12:12 | #2 | 
| Ищущий знания... | 
			
			Не совсем понял проблемы... что бы при запросе выбрались все поля достаточно написать: select Table; 
				__________________ "Страх перед возможностью ошибки не должен отвращать нас от поисков истины." (с) С Уважением, Елизаров Артем | 
|  | 
|  29.10.2008, 12:13 | #3 | 
| Участник | 
			
			вместо == попробуй использовать like
		 | 
|  | |
| За это сообщение автора поблагодарили: Вата (1). | |
|  29.10.2008, 12:17 | #4 | 
| Участник | Цитата: 0. это два совершенно разных вопроса. причем второй скорее всего неправильный. 1. для того, чтобы Аксапта искала записи, в которых содержится спецсимвол, то спецсимвол надо экранировать бэкслешем (\). Или использовать @-стиль написания строковых литералов например, while select mytable where myTable.myField == '\*' {} или @-стиль, while select mytable where myTable.myField == @'\' {} 2. для того, чтобы аксапта выбирала все ЗАПИСИ, то надо избавиться от условия where. Правильный способ работы с переменными услвоиями - это использовать Query. Если же вы хотите обязательно while select, то надо писать так str myRange = ''; while select mytable where (myTable.myField == myRange || myRange == '') {} 3. для того, чтобы аксапта выбирала все ПОЛЯ, ничего делать не нужно. Ваш запрос уже выбирает все поля, поскольку вы не перечислили ни одного поля в запросе. | 
|  | |
| За это сообщение автора поблагодарили: Gustav (3). | |
|  29.10.2008, 12:25 | #5 | 
| Участник | 
			
			Задача:  На форме есть поле.. Если в поле что то стоит (есть значение), то нужно это использовать как фильтр, если же там ничего не стоит (пусто) то нужно игнорировать это условие (выбрать всё поля). С query не охота заморачиваться.. X++: str myRange = ''; while select mytable where (myTable.myField == myRange || myRange == '') {} Последний раз редактировалось Вата; 29.10.2008 в 12:28. | 
|  | 
|  29.10.2008, 12:27 | #6 | 
| Участник | 
			
			Возможно вас устроит вот такая конструкция X++: Select Table where ((value == '') || (Table.field == value)); | 
|  | |
| За это сообщение автора поблагодарили: mazzy (2). | |
|  29.10.2008, 12:29 | #7 | 
| Участник | 
			
			А придется. Именно query предназначен для работы с пользовательскими условиями. Вы конечно можете написать вот так X++: while select, str myRange = ''; while select mytable where (myTable.myField == myRange || myRange == '') {} http://axapta.mazzy.ru/lib/search/ разберитесь с query. | 
|  | 
|  29.10.2008, 12:31 | #8 | 
| Участник | 
			
			можно конечно. FAQ http://forum.mazzy.ru/index.php?showtopic=173 Извините, что написал, не подумав, что вы введете в Аксапту именно этот код. Надо писать так X++: myStringType myRange = ''; while select mytable where (myTable.myField == myRange || myRange == '') {} X++: str 10 myRange = ''; while select mytable where (myTable.myField == myRange || myRange == '') {} | 
|  | 
|  29.10.2008, 12:34 | #9 | 
| Участник | 
			
			Всем спасибо я уже написал вот так: X++: sAccount = "Значение"); if (sAccount == '') sAccount = '*'; select from Table where Table.Account like sAccount | 
|  | 
|  29.10.2008, 12:35 | #10 | 
| NavAx | 
			
			Ну и для правильного понимания... Выбрать все поля != выбрать все записи. Автор топика опять плохо формулирует свои желания. | 
|  | 
|  29.10.2008, 12:37 | #11 | 
| Участник | 
			
			Нужно писать более граммотно   : X++: select * from Table where !sAccount || Table.Account == sAccount; | 
|  | |
| За это сообщение автора поблагодарили: mazzy (2), anykey (1), Вата (1). | |
|  29.10.2008, 12:38 | #12 | 
| Участник | 
			
			Like с огромной вероятностью не индексируется. Т.е. вы перешли от индексированного поиска к Table scan. Другими словами, легким движением руки вы ввели дикие тормоза в свою систему. И это потому, что кому-то очень лень разобраться с Query.   | 
|  | |
| За это сообщение автора поблагодарили: Вата (1). | |
|  29.10.2008, 12:44 | #13 | 
| Участник | |
|  | 
| Теги | 
| как правильно, запрос (query), axapta | 
|  | 
| 
 |