Вверх ↑
Этот топик читают: Гость
Ответов: 59
Рейтинг: 0
#1: 2021-02-26 22:29:42 ЛС | профиль | цитата
Всем здравствуйте. Возникла проблема с добавлением записей в таблицу. Выскакивает ошибка

Error
---------------------------
› 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' ) VALUES (' ', ' \ ')' at line 1
---------------------------
ОК
Там где проблемы это кириллица. Движок сервера InnoDB, utf-8. utf-8_general_ci
Запрос в консоли mysql выполняется

INSERT INTO test.tbd_a_gorod(КодГорода, Город) VALUES ('апвапываф', 'лваеноыываЦв');
В элементе dbMySQL менял различные кодировки. Пробовал на другом компе с другой версией сервера. Пробовал компилировать на чистом Hiasm и на Hiasm.net. В Delphi 10 сделал подобно, запрос успешно выполнился.
Hiasm 4.05 build 186; FPC; MySQL MOD Unicode
Схема элементарная

Add(MainForm,2953706,35,77)
{
Height=152
link(onCreate,2986171:doOpen,[(163,97)(163,202)])
}
Add(Button,10320345,273,343)
{
Left=245
Top=15
Width=75
Caption="Добавить"
link(onClick,15116078:doQuery,[(317,349)(317,307)(247,307)(247,265)])
}
Add(Edit,8517992,308,196)
{
Left=15
Top=15
Width=105
Text="ти"
}
Add(Edit,8360024,371,196)
{
Left=135
Top=15
Width=75
Text="тим"
}
Add(dbMySQL,2986171,259,196)
{
Login="root"
Password="root"
DBName="test"
Charset=5
}
Add(dbMySQL_Query,15116078,259,259)
{
link(onResult,15839493:doString,[])
link(dbHandle,2986171:dbHandle,[])
}
Add(Edit,14126593,364,259)
{
Left=10
Top=60
Width=355
Text="INSERT INTO naselenie.tbd_a_gorod VALUES('ти','ти',NULL);"
}
Add(FormatStr,15839493,315,259)
{
Mask="INSERT INTO naselenie.tbd_a_gorod VALUES('%1','%2',NULL);"
link(onFString,14126593:doText,[])
link(Str1,8517992:Text,[(321,243)(314,243)])
link(Str2,12187068:Var1,[(328,243)])
}
Add(GetDataEx,12187068,357,238)
{
Angle=1
link(Data,8360024:Text,[(377,243)])
}

В чем может быть проблема? Уже три месяца мучаюсь
карма: 0

0
Ответов: 207
Рейтинг: 14
#2: 2021-02-26 23:58:44 ЛС | профиль | цитата
LeoN писал(а):
Схема элементарная

Элементарная, но допущена ошибка. Запрос нужно подавать на точку doQuery.
Вот пример для нового пакета FPC
Add(MainForm,3159344,441,238)
{
Height=152
link(onCreate,2986171:doOpen,[])
}
Add(Button,10320345,420,392)
{
Left=245
Top=15
Width=75
Caption="Добавить"
link(onClick,15839493:doString,[])
}
Add(Edit,8517992,476,322)
{
Left=15
Top=15
Width=105
Text="ти"
}
Add(Edit,8360024,525,322)
{
Left=135
Top=15
Width=75
Text="тим"
}
Add(dbMySQL,2986171,581,252)
{
Login="root"
Password="123"
DBName="test"
Charset=5
}
Add(dbMySQL_Query,15116078,581,392)
{
link(dbHandle,2986171:dbHandle,[])
}
Add(FormatStr,15839493,518,392)
{
Mask="INSERT INTO naselenie.tbd_a_gorod VALUES('%1','%2',NULL);"
link(onFString,15116078:doQuery,[])
link(Str1,8517992:Text,[(524,376)(482,376)])
link(Str2,8360024:Text,[])
}
Выложите сюда дамп со структурой таблицы tbd_a_gorod

Редактировалось 1 раз(а), последний 2021-02-26 23:59:16
карма: 2

0
Ответов: 4630
Рейтинг: 749
#3: 2021-03-01 11:55:35 ЛС | профиль | цитата
LeoN писал(а):
MySQL MOD Unicode
А где это взять?
карма: 26

0
Ответов: 59
Рейтинг: 0
#4: 2021-03-02 18:47:45 ЛС | профиль | цитата
Joiner писал(а):
допущена ошибка

Собирал схемы для темы, поэтому и ошибся, но сути то это не меняет.
Joiner писал(а):
структурой таблицы

CREATE TABLE `tbd_a_gorod` (
`Код` varchar(2) DEFAULT NULL,
`Город` varchar(18) DEFAULT NULL,
`count` int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`count`)
) ENGINE=InnoDB AUTO_INCREMENT=33 DEFAULT CHARSET=utf8
Netspirit писал(а):
А где это взять?

https://forum.hiasm.com/post/307591
Для достоверности видео. https://recordit.co/pqRSmqBaYt

Редактировалось 1 раз(а), последний 2021-03-02 18:52:53
карма: 0

0
Ответов: 4630
Рейтинг: 749
#5: 2021-03-03 11:31:14 ЛС | профиль | цитата
Если используешь модифицированный пакет и новый FPC - там родные версии компонентов (не от Joiner) - работают?
карма: 26

0
Ответов: 59
Рейтинг: 0
#6: 2021-03-07 22:04:25 ЛС | профиль | цитата
Netspirit писал(а):
модифицированный пакет

О чем речь? Не пойму.
Netspirit писал(а):
новый FPC - там родные версии компонентов (не от Joiner) - работают?

Работают, в них только нет поддержки кириллицы и нет кодов ошибок.

Редактировалось 1 раз(а), последний 2021-03-07 22:06:37
карма: 0

0
Ответов: 207
Рейтинг: 14
#7: 2021-03-08 00:00:27 ЛС | профиль | цитата
LeoN писал(а):
Для достоверности видео.

Странно на видео инсерты в таблицу просаживаются, значит никаких ошибок не возникает. Вместо кириллицы пустые строки.
LeoN писал(а):
нет поддержки кириллицы

Кириллица есть во всех пакетах, а вот юникод только в новом FPC https://forum.hiasm.com/topic/61538
Я в базу положил десятки миллионов строк кириллицей, как новым пакетом, так и стандартным.

Создал таблицу tbd_a_gorod, все отлично работает на всех компиляторах.
Вот скомпилировал (FPC-32U) такую схему для тебя, попробуй https://forum.hiasm.com/getfile/39214

Add(MainForm,3159344,210,203)
{
Width=312
Height=209
Caption="MySQL_Test - FPC-32U"
}
Add(Button,10320345,175,350)
{
Left=200
Top=135
Width=75
Caption="Добавить"
link(onClick,3127835:doEvent1,[])
}
Add(Edit,8517992,336,287)
{
Left=10
Top=135
Width=70
Text="ти"
}
Add(Edit,8360024,378,287)
{
Left=105
Top=135
Width=75
Text="тим"
}
Add(dbMySQL,2986171,434,217)
{
Login="root"
Password="123"
Charset=5
link(Host,675880:Text,[])
link(Login,218024:Text,[(447,159)(482,159)])
link(Password,9500953:Text,[(454,166)(524,166)])
link(DBName,11659281:Text,[(461,173)(566,173)])
link(onError,12549617:doMessage,[])
}
Add(dbMySQL_Query,15116078,434,357)
{
link(dbHandle,2986171:dbHandle,[])
}
Add(FormatStr,15839493,371,357)
{
Mask="INSERT INTO tbd_a_gorod VALUES('%1','%2',NULL);"
link(onFString,15116078:doQuery,[])
link(Str1,8517992:Text,[(377,341)(342,341)])
link(Str2,8360024:Text,[])
}
Add(Edit,675880,434,119)
{
Left=125
Top=10
Width=155
Text="localhost"
}
Add(Edit,218024,476,119)
{
Left=125
Top=35
Width=155
Text="root"
}
Add(Edit,9500953,518,119)
{
Left=125
Top=60
Width=155
Text="root"
}
Add(Edit,11659281,560,119)
{
Left=125
Top=85
Width=155
Text="naselenie"
}
Add(Label,16197053,343,126)
{
Left=15
Top=10
Width=42
Height=24
Font=[MS Sans Serif,12,1,0,1]
Caption="Host"
}
Add(Label,13207615,340,123)
{
Left=15
Top=35
Width=48
Height=24
Font=[MS Sans Serif,12,1,0,1]
Caption="Login"
}
Add(Label,2882873,340,123)
{
Left=15
Top=60
Width=81
Height=24
Font=[MS Sans Serif,12,1,0,1]
Caption="Password"
}
Add(Label,6425973,334,117)
{
Left=15
Top=85
Width=75
Height=24
Font=[MS Sans Serif,12,1,0,1]
Caption="DBName"
}
Add(Hub,3127835,238,350)
{
link(onEvent1,14465400:doEvent1,[(263,356)(263,223)])
link(onEvent2,15839493:doString,[])
}
Add(Message,12549617,532,217)
{
}
Add(Hub,14465400,350,217)
{
link(onEvent1,2986171:doOpen,[])
link(onEvent2,2986171:doSelectDB,[(424,230)(424,237)])
}
ВНИМАНИЕ: Схема выше для нового FPC. Для стандартного пакета нужно запрос конвертировать в UTF8. (Charset ANSI_UTF8)
карма: 2

0
7
Сообщение
...
Прикрепленные файлы
(файлы не залиты)