powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ошибка при выполнении update (sqlexec)
4 сообщений из 4, страница 1 из 1
ошибка при выполнении update (sqlexec)
    #38368085
ProgramGirl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При выполнении запроса
к инстансу oracle:

= SQLEXEC(gnConnHandle, "UPDATE table1 struct
SET RECEIVER_NAME='ОАО Банк XXXX" '
"WHERE DOC_DATE='14.08.2013' AND BCD_TYPE IN ('1','2') AND SVD_HEADER_ID IN"+;
" (SELECT DISTINCT table2.SVD_HEADER_ID FROM table2 WHERE table2.SVD_HEADER_ID=struct.SVD_HEADER_ID AND SU_CODE IN ('&a'))" )

выдаётся ошибка:
"Function name is missing )".

Причина-использование двойных кавычек в RECEIVER_NAME.
Помогите побороть
...
Рейтинг: 0 / 0
ошибка при выполнении update (sqlexec)
    #38368125
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
 = SQLEXEC(gnConnHandle, [UPDATE table1 struct
SET RECEIVER_NAME='ОАО Банк XXXX" '
  "WHERE DOC_DATE='14.08.2013' AND BCD_TYPE IN ('1','2') AND SVD_HEADER_ID IN"+; 
  " (SELECT DISTINCT table2.SVD_HEADER_ID FROM  table2 WHERE table2.SVD_HEADER_ID=struct.SVD_HEADER_ID AND SU_CODE IN ('&a'))] )
...
Рейтинг: 0 / 0
ошибка при выполнении update (sqlexec)
    #38368321
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значения лучше передавать как параметры. Примерно так

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
lcName = 'ОАО Банк XXXX" '
lcDate = '14.08.2013'
lcUpdate = " UPDATE table1 struct" + ;
           " SET RECEIVER_NAME = ?m.lcName" + ;
           " WHERE DOC_DATE = ?m.lcDate" + ;
           " AND BCD_TYPE IN ('1','2')" + ;
           " AND SVD_HEADER_ID IN" + ;
                                " (SELECT DISTINCT table2.SVD_HEADER_ID " + ;
                                " FROM table2 " + ;
                                " WHERE table2.SVD_HEADER_ID=struct.SVD_HEADER_ID " + ;
                                " AND SU_CODE IN ('&a')" + ;
                                ")"
=sqlExec(gnConnHandle, m.lcUpdate)


Символ вопросительного знака в строке внутри SQLExec() означает, что за ним следует "параметр", т.е. некое выражение, которое будет вычислено в среде FoxPro и передано на сервер "как есть" без анализа содержимого.

Причем параметр может быть любого типа. Если, например, поле DOC_DATE - это поле типа DateTime, то и значение "параметра" lcDate можно сделать типа DateTime, чтобы не мучится с переводом в символьную строку и обратно.
...
Рейтинг: 0 / 0
ошибка при выполнении update (sqlexec)
    #38370746
ProgramGirl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за помощь! В частности, огромная благодарность Владимиру за помощь, очень помог ваш вариант)
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / ошибка при выполнении update (sqlexec)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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