FiXiZ
Active Forum Member / Активный участник форума
Участник № / Member № 5069
отправлено / posted
Здравствуйте!
Пытаюсь получить значение из функции mysql, не получается. Причем в трассировке ODBC вообще ничего нет. Порыскал по форуму, наткнулся на пост от 2008 года с хранимыми процедурами, там говорится что возвращать значения нельзя, можно только передавать в базу. Передача у меня работает, а возврат не хочет. Хотелось бы уточнить ситуацию, с 2008 года были изменения в данном вопросе?
Сообщения / Posts 70 | Из / From: Russia
| IP / IP: IP адрес / IP address |
отправлено / posted
Отсутствие записей о запросе в трассировщие ODBC-драйвера настораживает. Это касается только MySQL или MS Access тоже? Пришлите, пожалуйста, Ваш тест-проект с БД (лучше с MS Access).
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
FiXiZ
Active Forum Member / Активный участник форума
Участник № / Member № 5069
FiXiZ
Active Forum Member / Активный участник форума
Участник № / Member № 5069
отправлено / posted
Уважаемая Техподдержка, отправлял проект на hotline3@adastra.ru в пятницу. Вы получили его?
Сообщения / Posts 70 | Из / From: Russia
| IP / IP: IP адрес / IP address |
FiXiZ
Active Forum Member / Активный участник форума
Участник № / Member № 5069
отправлено / posted
В результате было выяснено, что функции отрабатывают, но только с одним аргументом. И тут возникла еще проблема. При жестко указанном аргументе функция отрабатывает корректно:"SELECT Vh1_func(4345.46) #V1тар_In# FROM data WHERE param_id = 5341 ORDER BY time DESC LIMIT 1;" Однако когда подставляю переменную, запрос перестает отрабатывать: "SELECT Vh1_func( #ST5_BARS1_H_гот_R# ) #V1тар_In# FROM data WHERE param_id = 5341 ORDER BY time DESC LIMIT 1;". Причем тип переменной роли не играет, функции приведения типов mysql не помогают. С трассировко
Сообщения / Posts 70 | Из / From: Russia
| IP / IP: IP адрес / IP address |
FiXiZ
Active Forum Member / Активный участник форума
Участник № / Member № 5069
отправлено / posted
В результате было выяснено, что функции отрабатывают, но только с одним аргументом. И тут возникла еще проблема. При жестко указанном аргументе функция отрабатывает корректно:"SELECT Vh1_func(4345.46) #V1тар_In# FROM data WHERE param_id = 5341 ORDER BY time DESC LIMIT 1;" Однако когда подставляю переменную, запрос перестает отрабатывать: "SELECT Vh1_func( #ST5_BARS1_H_гот_R# ) #V1тар_In# FROM data WHERE param_id = 5341 ORDER BY time DESC LIMIT 1;". Причем тип переменной роли не играет, функции приведения типов mysql не помогают. С трассировкой под вин7 пока проблемы (лог не пишется почему-то), позже попробую на XP. релиз 6.08
Сообщения / Posts 70 | Из / From: Russia
| IP / IP: IP адрес / IP address |
FiXiZ
Active Forum Member / Активный участник форума
Участник № / Member № 5069
отправлено / posted
ac0-894 EXIT SQLExecDirectW with return code -1 (SQL_ERROR) HSTMT 01B217F8 WCHAR * 0x0F149C58 [ 78] "SELECT Vh1_func() FROM data WHERE param_id = 5341 ORDER BY time DESC LIMIT 1;" SDWORD 78
DIAG [S1000] [MySQL][ODBC 3.51 Driver][mysqld-5.1.53]Incorrect number of arguments for FUNCTION nikooil.Vh1_func; expected 1, got 0 (1318)
отправлено / posted
Существуют ограничения в использовании подстановок. Согласно документации (см."Подстановки в SQL-запросе") две подстановки подряд использовать нельзя. В данном случае ")" не является разделителем.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
FiXiZ
Active Forum Member / Активный участник форума
Участник № / Member № 5069
отправлено / posted
Попробовал использовать переменные mysql: set @test1 := #test_R# ; SELECT Vh1_func(@test1) #V1тар_In# FROM data WHERE param_id = 5341 ORDER BY time DESC LIMIT 1 ; Одним запросом не пошло, выдал ошибку. В разбиении на 2 запроса ошибок не выдает. Но похоже что переменная @test1 обнуляется перед каждым запросом. Уважаемая Техподдержка, как я могу выполнить из mysql функцию с одним аргументом (DOUBLE) и принять результат (DOUBLE)? У меня уже нету времени гадать как обойти все запреты чтобы реализовать эту несложную задачу.
Сообщения / Posts 70 | Из / From: Russia
| IP / IP: IP адрес / IP address |
RomanUI
Junior Member / Новичок
Участник № / Member № 4022
отправлено / posted
Как правильно использовать условия поиска? Создана таблица, в которой один столбец типа TEXT. К примеру в нём записываются фамилии. Как найти фамилии оканчивающиеся на "ов". Пробовал использовать операцию LIKE подобно как в MS Access вводил *ов, но ничего не возвращается. Жду ответа.
Сообщения / Posts 24 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
Если данная функция реализуема в SQL, то Вы можете попробовать использовать ее при создании запроса из нашей среды.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
RomanUI
Junior Member / Новичок
Участник № / Member № 4022
отправлено / posted
Таблица создана в MS Access и в ней можно производить поиск сочетанием "*ов". Но на запрос из среды trace mode нет ответа.Вот код:
SELECT BD.Фамилия #ARG_000# FROM BD WHERE BD.Фамилия LIKE #ARG_001# ARG_000 и ARG_001 типа string. В ARG_001 помещается то, что нужно найти(тот же *ов)
отправлено / posted
Мы не можем давать консультации по правильному написанию SQL-запросов. Вам необходимо, используя любое SQL-приложение, написать запрос, используя логический оператор LIKE. Проверить корректность выполнения данного запроса и затем воспроизвести его в Шаблоне_связи_с_СУБД.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |