Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Invalid column name ? / 8 сообщений из 8, страница 1 из 1
13.04.2004, 12:47
    #32478914
Reznichenko Y.V.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Invalid column name ?
Ув. коллеги, может кто-то подскажет ? Строю удаленное представление для таблицы из базы Oracle через ODBC и при запуске запроса получаю сообщение: "Invalid column name". В чем причина ?
...
Рейтинг: 0 / 0
13.04.2004, 13:23
    #32479023
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Invalid column name ?
Это надо понимать буквально.

Имя поля (столбца), использованное в Remote View не существует в базе данных Oracle.

Как правило, подобная ситуация возникает, если ты сначала создал Remote View, а потом изменил таблицу в базе Oracle. Но ведь в базе FoxPro в созданном Remote View осталось старое имя поля. Отсюда и конфликт.
...
Рейтинг: 0 / 0
13.04.2004, 13:32
    #32479046
Reznichenko Y.V.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Invalid column name ?
Не совсем так. View создается первый раз и таблица в Oracle не менялась. Может ODBC не нравится длина имен полей или имя таблицы в формате LOGIN.TABLE_NAME ?
...
Рейтинг: 0 / 0
13.04.2004, 13:42
    #32479070
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Invalid column name ?
Приведи полный запрос. Может конфликт с какими-либо ключевыми словами вроде ORDER, GROUP и т.п.
...
Рейтинг: 0 / 0
13.04.2004, 18:11
    #32479790
Reznichenko Y.V.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Invalid column name ?
Вот текст запроса, генерируемого view-дизайнером:

SELECT Arc_document.DOCUMENTDATE, Arc_document.BANKAID,;
Arc_document.ACCOUNTANO, Arc_document.BANKBID, Arc_document.ACCOUNTBNO,;
Arc_document.SUMMA;
FROM USER1.ARC_DOCUMENT Arc_document;
WHERE Arc_document.documentdate >= CTOD("01.03.2004");
AND Arc_document.documentdate <= CTOD("31.03.2004")

Запрос простейший. CTOD пробовал заменить на родную оракуловскую ф-ию TO_DATE - результат тот же: "Invalid column name".
...
Рейтинг: 0 / 0
13.04.2004, 18:53
    #32479880
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Invalid column name ?
Remote View - это инструкция, которая будет выполняться на сервере . В данном случае на Oracle. Естесственно, что Oracle просто не имеет такой функции как CTOD() и будет на нее ругаться.

Сделай параметризированный запрос, т.е. это будет примерно так:

SELECT
...
WHERE Arc_document.documentdate >= ?StartDate;
AND Arc_document.documentdate <= ?EndDate

Вопросительный знак говорит о том, что далее следует параметр. Некое значение, которое фомируется ВНЕ основного запроса. Чтобы не было конфликтов с типами данных опиши эти параметры в списке параметров (пункт главного меню Query, подпункт View Parameters)

Если на момент запуска запроса нужных переменных еще не существует, то FoxPro автоматически предложит ввести нужные значения. Программно, это будет выглядеть так:

LOCAL StartDate, EndDate
StartDate = {^2004.03.01}
EndDate = {^2004.03.31}
USE MyRemoteView

Можно в любой момент изменить значение параметров и выполнить перезапрос Requery("MyRemoteView")
...
Рейтинг: 0 / 0
14.04.2004, 10:46
    #32480467
Reznichenko Y.V.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Invalid column name ?
To ВладимирМ

Огромное спасибо! Все получилось.
...
Рейтинг: 0 / 0
14.04.2004, 10:47
    #32480471
Reznichenko Y.V.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Invalid column name ?
To ВладимирМ

Огромное спасибо! Все получилось.
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Invalid column name ? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]