Программы "Простой софт" www.prostoysoft.ru

ВНИМАНИЕ! РЕКЛАМНЫЕ СООБЩЕНИЯ И ГИПЕРССЫЛКИ В ФОРУМЕ ЗАПРЕЩЕНЫ (посты удаляются автоматически)
Текущее время: 23.11.2024 02:51

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Странно работает ExecuteSQL
СообщениеДобавлено: 02.09.2016 03:58 
Не в сети

Зарегистрирован: 30.08.2016 15:36
Сообщения: 23
Странно, но в триггере "При добавлении и изменении записи" как SQL-инструкция
Код:
UPDATE tblMain SET FF = 12  WHERE ID = <ID>
работает нормально,
а вот как VBScript
Код:
ExecuteSQL( "UPDATE tblMain SET FF = 12  WHERE ID = <ID>")
MsgBox "test"

работать в упор не хочет. окошко msgBox работает, а ExecuteSQL не хочет.

кстати...
Код:
dim s,s1
s = "wwwww"
s1 = "UPDATE tblMain SET FldFFK = " & chr(34) & s  & chr(34) &  "  WHERE ID = <ID>"
MsgBox s1
ExecuteSQL(s1)

я добиваюсь нормальной работы такого кода( FldFFK - текстовое поле)

Заранее спасибо за консультацию.. :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странно работает ExecuteSQL
СообщениеДобавлено: 02.09.2016 11:27 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Вместо
Цитата:
ExecuteSQL( "UPDATE tblMain SET FF = 12 WHERE ID = <ID>")
MsgBox "test"

лучше бы писать так
Код:
Dim iID, sSql
iID = <ID>
sSql = "UPDATE tblMain SET FF = 12  WHERE ID = " & iID
MsgBox sSql
ExecuteSQL(sSql)

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странно работает ExecuteSQL
СообщениеДобавлено: 02.09.2016 14:55 
Не в сети

Зарегистрирован: 30.08.2016 15:36
Сообщения: 23
Увы и ах...
Код:
Dim iID, sSql
iID = <ID>
sSql = "UPDATE tblMain SET FF = 12  WHERE ID = " & iID
MsgBox sSql
ExecuteSQL(sSql)

не работает... Причем в MsgBox запрос индицируется правильно. Похоже, что-то с реализацией ExecuteSQL...

Помогите, пожалуйста!!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странно работает ExecuteSQL
СообщениеДобавлено: 02.09.2016 15:14 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
В поддержку, пожалуйста, обратитесь к нам.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странно работает ExecuteSQL
СообщениеДобавлено: 03.09.2016 23:08 
Не в сети

Зарегистрирован: 30.08.2016 15:36
Сообщения: 23
Уточнение - ExecuteSQL не работает(код VBS см. выше) тогда, когда включено "Редактирование в таблице". Если же выбрано "редактирование в форме", то код работает нормально.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странно работает ExecuteSQL
СообщениеДобавлено: 05.09.2016 09:57 
Не в сети

Зарегистрирован: 30.08.2016 15:36
Сообщения: 23
Ivan, обращаться в тех.поддержку просто бессмысленно.

на мой запрос:
Цитата:
почему в триггере "При добавлении и изменении записи" как SQL-инструкция
Код:
UPDATE tblMain SET FF = 12  WHERE ID = <ID>

работает нормально,
а вот как VBScript
Код:
ExecuteSQL( "UPDATE tblMain SET FF = 12  WHERE ID = <ID>")
MsgBox "test"

работать в упор не хочет. окошко msgBox работает, а ExecuteSQL не хочет.


получил от тех.поддержки "исчерпывающий" ответ:
Цитата:
Что-то неправильное вы пытаетесь сделать.

Обновлять можно только существующие записи, но не те, которые еще в процессе добавления.

Воспользуйтесь Значением по умолчанию, если вам надо заполнять те или иные поля значениями при добавлении записи.


Мне кажется, это просто отписка... А Вам так не кажется?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странно работает ExecuteSQL
СообщениеДобавлено: 05.09.2016 10:22 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Цитата:
работать в упор не хочет. окошко msgBox работает, а ExecuteSQL не хочет.

ExecuteSQL скорее всего исполняется. Просто записи еще нет добавленной. Она в процессе добавления.
Поэтому в WHERE указан ID еще не существующей записи. Вот и не работает.
Вы можете изменить время срабатывания триггера на "После добавления".
Проверьте, последняя ли у вас версия, обновитесь.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странно работает ExecuteSQL
СообщениеДобавлено: 05.09.2016 11:34 
Не в сети

Зарегистрирован: 30.08.2016 15:36
Сообщения: 23
Цитата:
ExecuteSQL скорее всего исполняется. Просто записи еще нет добавленной. Она в процессе добавления.
Поэтому в WHERE указан ID еще не существующей записи. Вот и не работает.
Вы можете изменить время срабатывания триггера на "После добавления".
Проверьте, последняя ли у вас версия, обновитесь.

Хм.. А почему тогда правильно работает SQL-Инструкция? Почему ExecuteSQL работает неправильно и при изменении записи( ведь ID уже существует)? А почему ExecuteSQL работает правильно, когда включено "Редактирование в таблице"(и при добавлении, и при изменении)?

Ivan, проверьте, пожалуйста, код ExecuteSQL.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странно работает ExecuteSQL
СообщениеДобавлено: 05.09.2016 16:59 
Не в сети

Зарегистрирован: 13.09.2015 23:15
Сообщения: 115
Откуда: Санкт-Петербург
Цитата:
ExecuteSQL( "UPDATE tblMain SET FF = 12 WHERE ID = <ID>")

Может не нужны скобки и лишние пробелы?
Так пробовали: ExecuteSQL "UPDATE tblMain SET FF = 12 WHERE ID = <ID>"?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странно работает ExecuteSQL
СообщениеДобавлено: 05.09.2016 17:27 
Не в сети

Зарегистрирован: 30.08.2016 15:36
Сообщения: 23
Цитата:
Может не нужны скобки и лишние пробелы?

В Справке указан именно такой формат ExecuteSQL(SqlString)

Да и.... ExecuteSQL( "UPDATE tblMain SET FF = 12 WHERE ID = <ID>") работает правильно, когда включено "Редактирование в таблице"(и при добавлении, и при изменении).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странно работает ExecuteSQL
СообщениеДобавлено: 06.09.2016 22:37 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Как я уже сказал ExecuteSQL выполняется, но записи еще нет, которая только в процессе добавления, но ID уже сгенерировался.
И инструкция отрабатывает в холостую. При редактировании в таблице.
Целесообразно попробовать изменить время триггера на "После добавления".

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странно работает ExecuteSQL
СообщениеДобавлено: 07.09.2016 02:22 
Не в сети

Зарегистрирован: 30.08.2016 15:36
Сообщения: 23
Цитата:
Целесообразно попробовать изменить время триггера на "После добавления".

Перепробовал все режимы триггера... Не помогает.

Цитата:
Как я уже сказал ExecuteSQL выполняется, но записи еще нет, которая только в процессе добавления, но ID уже сгенерировался.
И инструкция отрабатывает в холостую. При редактировании в таблице.

Ivan, по моему вы не читаете моих сообщений. Дело в том, что ExecuteSQL НЕ выполняется и в процессе изменения тоже.
В режиме изменения есть и запись, есть и ID(убедиться можно с помощью MsgBox)... Все есть... Кроме желания разработчика исправить очевиднейшую ошибку, не тратя времени на отписки.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странно работает ExecuteSQL
СообщениеДобавлено: 07.09.2016 11:26 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Измените ваше SQL-выражение на
INSERT INTO tblUsers (UserName) VALUES (NOW)
И вы увидите, что ExecuteSQL отрабатывает и записи в таблицу tblUsers ("Сотрудники") добавляются.
Соответственно, дело в чем-то другом - в вашем конкретном SQL или, может быть, в не правильно выбранном времени срабатывания триггера для решения вашей конкретной задачи. При редактировании в таблице (а не в форме) есть некоторая специфика.
Также возможен случай, что вы просто не видите результатов выполнения - т.е. возможно, нужно просто нажать F5 "Обновить".
В подобных случаях желательно снимать видео.
Если информация о проблеме нам предоставлена в исчерпывающем полном объеме, то мы обычно исправляем явные ошибки сразу, в тот же день обращения.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странно работает ExecuteSQL
СообщениеДобавлено: 07.09.2016 14:11 
Не в сети
Администратор

Зарегистрирован: 15.02.2006 20:16
Сообщения: 3690
Откуда: Санкт-Петербург
Вы не предоставили информацию по проблеме в полном объеме, в соответствии с нашим Регламентом оказания технической поддержки.
Рекламные ссылки у нас на форуме запрещены.

_________________
2B OR NOT 2B = TRUE


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Странно работает ExecuteSQL
СообщениеДобавлено: 07.09.2016 14:41 
Не в сети

Зарегистрирован: 30.08.2016 15:36
Сообщения: 23
Да, доросли до такой низости? Удаляем посты? Похвально...

Цитата:
Рекламные ссылки у нас на форуме запрещены.

а где вы нашли в моем посте рекламную ссылку? Название программы - это не есть ссылка..

а впрочем... Если неработающий код - это "особенность" программы, то и название программы - это "рекламная ссылка"... :D

ЗЫ... уж боюсь писать название мед.учреждения... Это, наверное, тоже рекламная ссылка?? :?:


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB