Здравствуйте, уважаемое сообщество. 
Обстановка: CW55F ABC, ORACLE 8.1.7
Имею таблицу:
STATIONS             FILE,DRIVER('ORACLE'),OWNER('URZA/URZA@ASU.WORLD'),NAME('URZA.STATIONS'),PRE(STA),BINDABLE,CREATE,THREAD
I1                       KEY(STA:COD),NOCASE,OPT,PRIMARY
I2                       KEY(STA:SYS,STA:NAIMF),DUP,NOCASE,OPT
Record                   RECORD,PRE()
COD                         SHORT
SYS                         SHORT
NAIMF                       STRING(40)
NAIMS                       STRING(6)
                         END
                     END
Прога - проще некуда:
строю Wizard'om Browse;
Вставляю строку (в Init)
BRW1::View:Browse{PROP:SQLFILTER} = 'STATIONS.SYS = 1';
Получаю сообщение, нигде в доке не описанное
ERROR(ORA-00904: invalid column name (-904)) attempting to access a record from the URZA.STATIONS file.
Где могла порыться собака? 
Написал: ALTerEgo(65)
			
			
									
						Ошибка 00904 - нет в доке
Модератор: Andrew™
					Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
	При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
- 
				Гость
 
Во-первых - это ошибка Oracle, и, как и написано, означает не правильное имя колонки. Clarion тут не при делах.
Во-вторых - включи трассировку (trace.exe) и посмотри текст запроса (многое станет понятнее).
И последнее - если совсем ломает самому разбираться, примени метод научного тыка. Попробуй просто написать BRW1::View:Browse{PROP:SQLFILTER} = 'SYS = 1', или BRW1::View:Browse{PROP:SQLFILTER} = 'A.SYS = 1', или
BRW1::View:Browse{PROP:SQLFILTER} = '"SYS" = 1' , или
BRW1::View:Browse{PROP:SQLFILTER} = 'URZA.STATIONS.SYS = 1';
С уважением, Алексей Каминский
Привет всем
ORA-00904: invalid column name
Cause: The column name entered is either missing or invalid.
Action: Enter a valid column name. A valid column name must begin with a letter, be less than or equal to 30 characters, and consist of only alphanumeric characters and the special characters $, _, and #. If it contains other characters, it must be enclosed in double quotation marks.
 
It may not be a reserved word.
 
поэтому SYS, DATE, SYTEM... в именах полей не допустимы, а 904 не верное имя
 
Удачи...
Сергей Половинкин s.polovinkin@vaz.ru (ДИС)
Привет!
 
Дополню: используй External Name для этого поля.
 
Александр Агеев (aageev@satren.ru)
Еще дополню: в PROP:SQL и PROP:SQLFILTER тогда надо использовать именно это External Name. А во всех остальных случаях Field Name.
Что легко приводит к путаннице. Проще взять за правило: идентификаторы в запросах ставить в кавычки. Oracle к этому нормально относиться.
С уважением, Алексей Каминский
Написал: ClaList(2)
			
			
									
						Во-вторых - включи трассировку (trace.exe) и посмотри текст запроса (многое станет понятнее).
И последнее - если совсем ломает самому разбираться, примени метод научного тыка. Попробуй просто написать BRW1::View:Browse{PROP:SQLFILTER} = 'SYS = 1', или BRW1::View:Browse{PROP:SQLFILTER} = 'A.SYS = 1', или
BRW1::View:Browse{PROP:SQLFILTER} = '"SYS" = 1' , или
BRW1::View:Browse{PROP:SQLFILTER} = 'URZA.STATIONS.SYS = 1';
С уважением, Алексей Каминский
Привет всем
ORA-00904: invalid column name
Cause: The column name entered is either missing or invalid.
Action: Enter a valid column name. A valid column name must begin with a letter, be less than or equal to 30 characters, and consist of only alphanumeric characters and the special characters $, _, and #. If it contains other characters, it must be enclosed in double quotation marks.
It may not be a reserved word.
поэтому SYS, DATE, SYTEM... в именах полей не допустимы, а 904 не верное имя
Удачи...
Сергей Половинкин s.polovinkin@vaz.ru (ДИС)
Привет!
Дополню: используй External Name для этого поля.
Александр Агеев (aageev@satren.ru)
Еще дополню: в PROP:SQL и PROP:SQLFILTER тогда надо использовать именно это External Name. А во всех остальных случаях Field Name.
Что легко приводит к путаннице. Проще взять за правило: идентификаторы в запросах ставить в кавычки. Oracle к этому нормально относиться.
С уважением, Алексей Каминский
Написал: ClaList(2)
- 
				Гость
 
