Delphi XE 使用 MySQL 数据库一个奇怪的问题
生活随笔
收集整理的這篇文章主要介紹了
Delphi XE 使用 MySQL 数据库一个奇怪的问题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Delphi XE 使用 MySQL 數(shù)據(jù)庫(kù)一個(gè)奇怪的問(wèn)題
我用的是自帶的 ADO 組件連接 MYSQL ,連接很簡(jiǎn)單,如下:
1、下載一個(gè) MYSQL 驅(qū)動(dòng)安裝上 下載地址
2、連接串
- 這樣連接的優(yōu)點(diǎn)是方便 缺點(diǎn)是目標(biāo)需要也安裝驅(qū)動(dòng) 只安裝驅(qū)動(dòng)即可不必設(shè)置 ODBC
之后就是討厭的中文亂碼問(wèn)題解決
網(wǎng)上介紹的大多是數(shù)據(jù)庫(kù)編碼改成 UTF8 這樣不能完全解決 但使用 DELPHI 不亂碼最重要的是設(shè)置 ADO 連接也使用 UTF8 之后保存中文時(shí)用 AnsiToUtf8 讀取時(shí)用 Utf8ToAnsi
接著奇怪的問(wèn)題出現(xiàn)了
Adoq.Edit;sSave := AnsiToUtf8('中文測(cè)試');Adoq.FieldByName('Field').Value := sSave;Adoq.Post; // 這樣就會(huì)出錯(cuò) 說(shuō) Data too long for column 'Field' at row 1'. 錯(cuò)誤,說(shuō)字段不夠長(zhǎng)可確信字段長(zhǎng)度夠用 Adoq.Edit;Adoq.FieldByName('Field').Value := AnsiToUtf8('中文測(cè)試');Adoq.Post; // 同樣 沒(méi)改數(shù)據(jù)結(jié)構(gòu)的情況下 這樣就沒(méi)問(wèn)題*有大佬知道咋回事兒?jiǎn)?#xff1f;
總結(jié)
以上是生活随笔為你收集整理的Delphi XE 使用 MySQL 数据库一个奇怪的问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Delphi XE 10.4 FMX L
- 下一篇: MySQL自动备份到本地数据库_MYSQ