1

Тема: AHK: Проблема с одинарной ' в Class_SQLiteDB.ahk

Добрый день.
Пытаюсь понять, как правильно использовать SQLite через Class_SQLiteDB.ahk и столкнулся с одной проблемой:

SQL := "INSERT or IGNORE INTO table VALUES('" . auth . "', '" . material . "', 0);"
Clipboard := SQL
If !DB.Exec(SQL)
	MsgBox, 16, SQLite Error, % "Msg:`t" . DB.ErrorMsg . "`nCode:`t" . DB.ErrorCode

Пробую выполнять на странице, выдает ошибку:

Msg: near "ve": syntax error
Code: 1

Вставляю в текстовый документ, ищу "ve" - нахожу единственное место: "I've tested".
Дальше, иду, читаю форумы про sqlite, нахожу, что вероятно проблема в одинарной '. Тут же, по мотивам добавляю прямо перед тем куском кода выше:

StringReplace, material, material, `', ```', All
SQL := ...

Запускаю, ошибка та же, но в скопированном вижу: "I`'ve tested".

Как быть? Как сделать, чтобы получить в ячейке sqlite правильное "I've tested"?

2

Re: AHK: Проблема с одинарной ' в Class_SQLiteDB.ahk

Как оно иногда бывает - стоило только написать на форум, как буквально минут через 20 в голову приходит решение...

StringReplace, material, material, `', `'`', All

Вроде работает.

3

Re: AHK: Проблема с одинарной ' в Class_SQLiteDB.ahk

Знакомый эффект. Во-первых, когда пишешь на форум, всегда стараешься сформулировать мыль чётко и понятно. В это время усиливается внимание. Подбирая правильные слова, составляешь в голове стройную мысль. Во-вторых, когда читаешь свою же мысль в качестве сообщения на форуме, включается соображалка и свежий взгляд на проблему.
Как известно, правильно заданный вопрос содержит в себе часть ответа.

4

Re: AHK: Проблема с одинарной ' в Class_SQLiteDB.ahk

Знаки акцента скорее всего лишние.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Проблема с одинарной ' в Class_SQLiteDB.ahk

teadrinker Действительно. Мдя... И почему на форумах именно для этих целей пишут знак `? (Впрочем, это скорее риторический вопрос.)

6 (изменено: teadrinker, 2019-11-15 00:37:36)

Re: AHK: Проблема с одинарной ' в Class_SQLiteDB.ahk

Это чтобы экранировать спец-символы AHK, а одинарная кавычка таковым не является.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: AHK: Проблема с одинарной ' в Class_SQLiteDB.ahk

teadrinker Оу, вон оно как...