Что нового

Странная ошибка #include

F9

Новичок
Сообщения
71
Репутация
2
Добрый день!
Возник вопрос к гуру!!!!

Использую AutoIT 3.3.12.0
Вопрос возник в использовонии date.au3, а именно:
в коде используются функции данной библиотеки, такие как
Код:
_NowTime()
или
Код:
_NowCalcRu()

Код:
Func _NowCalcRu()
	Return (@MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & ":" & @SEC)
EndFunc   ;==>_NowCalcRu


При запуске проекта ошибок нет, но как только доходит дело до выполнения строки, с использованием дункции из библиотеки date.au3 - ошибка (см. вложение)

Сам код верен, как логически, так и грамматически, почему ссылается на "инклюдную" библиотеку?
 

Вложения

  • IT_error.jpg
    IT_error.jpg
    67.8 КБ · Просмотры: 21

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Откуда в стандартной библиотеке функция _NowCalcRu()?
 
Автор
F9

F9

Новичок
Сообщения
71
Репутация
2
_NowCalcRu() - дописал сам
Код:
Func _NowCalcRu()
    Return (@MDAY & "." & @MON & "." & @YEAR & " " & @HOUR & ":" & @MIN & ":" & @SEC)
EndFunc   ;==>_No


Разобрался - вероятно AutoIt не совсем корректно интерпретировал ошибку, и переменная, вычисляемая ранее и вставляемая неважно куда (в моем случае в mySQL базу) - дало ошибку на следующую переменную.

Примерно так:
Код:
$MySQLConn.Execute("INSERT INTO info VALUES ('"&$nowdate_2_sql.Fields(0).Value&"','"&_NowCalcRu()&"')")


$nowdate_2_sql.Fields(0).Value - возвращала NULL из базы, и как следствие не могло вставить NULL куда либо
а ошибку выдавало на _NowCalcRu()
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
F9 нельзя дописывать свои функции в стандартные библиотеки.
Вашу _NowCalcRu() нужно разместить в конце вашего скрипта.
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
OffTopic:
inververs
нельзя дописывать <...> нужно разместить
Вы слишком категоричны. Дописывать можно, но не желательно. Разместить желательно, но не обязательно.
Потом ведь будут заявлять: "А мне гуру сказал, что так делать нельзя" ;)
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
OffTopic:
:smile: пусть лучше думает что нельзя, чем не понимает почему не желательно. Разместить в конце так проще написать, чем объяснять, где в скрипте могут располагаться функции
 
Автор
F9

F9

Новичок
Сообщения
71
Репутация
2
Тем не менее это не объяснило причину появления ошибки, совершенно некорректно указывающую на истинную ошибку.

ЗЫ
В моем коде далее встречается использование аналогичного запроса
Код:
$MySQLConn.Execute("INSERT INTO info VALUES ('"&$nowdate_2_sql.Fields(0).Value&"','"&_NowTime()&"')")

_NowTime() - стандартная функция, но и на нее точно таким эе образом ругался дебаггер
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Снести AutoIT, удалить вручную остатки, установить заново полную версию с оф.сайта. Установить полную версию редактора. Не изменять стандартные библиотеки
Проверить работу скрипта
Если есть ошибка, то привести сам код, а не строку, в которой, якобы, ошибка.
Иначе тут можно долго трындеть
 
Верх