程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Delphi中Undac控件連接MYSQL數據庫問題總結

Delphi中Undac控件連接MYSQL數據庫問題總結

編輯:MySQL綜合教程

Delphi中Undac控件連接MYSQL數據庫問題總結


1、數據庫掛到cxgrid上,中文顯示不正確

我調試了好長時間,懷疑是編碼問題,mysql的編碼方式我都試過了,都不可以。
解決問題過程:
(1)、在dos系統下進入mysql數據庫輸入show variables like ‘char%’;
這裡寫圖片描述
我考慮可能是character_set_connection的編碼有問題,於是開始設置它的編碼方式,但是,這個編碼方式重新啟動數據庫還是原來的編碼方式。當然可以mysql數據庫配置文件中設置,但是不是這個原因。
(2)、考慮到可能是數據庫字符集編碼方式問題,采用HeidiSQL軟件轉換編碼方式。
這裡寫圖片描述
其實mysql通常都是用utf8編碼,不用改變,所以失敗了。
(3)、換個角度,如果不是mysql的問題就是Undac控件的問題了,到底是什麼控件呢?當然是從連接數據庫控件開始找了。
這裡寫圖片描述
雙擊它,這裡寫圖片描述
選擇Options,裡面第一項Charset設置成GB2312,這樣就搞定了。
cxgrid 漢字顯示解決了。

2、使用Undac執行mysql數據庫語句

下面這句話用Undac控件執行,會報語法錯誤。
錯誤類型1:Unknown column ‘rownum’ in ‘where clause’
錯誤類型2:#42S22Unknown column ‘2005’

update tb_zichan set Logliushui="20150318",JieChuRen="李二狗",JieChuRenDianHua="18791983947",JieChuWeiZhi="537",YuGuiHuanShiJian="2015-03-18",JingShouRen="糖糖",JieChuShiJian="2015-04-28 18:33:42",JieChuRenEMail="",JieChuZhuangTai="借出" where SheBeiBianHao="20050408"。

嘗試了好多次,最後發現原來Undac控件執行mysql語句,字符串字段不能用雙引號,只能用單引號。例如下面語句。

UPDATE tb_zichan SET Logliushui ='20150318',JieChuRen ='人',JieChuRenDianHua ='18791983947',JieChuWeiZhi ='537',YuGuiHuanShiJian ='2015-03-18',JingShouRen ='dhfjh',JieChuShiJian ='2015-04-28 18:33:42',JieChuRenEMail ='',JieChuZhuangTai ='hfudgf' where SheBeiBianHao ='20050408'

3、判斷mysql數據庫表中的數據是否為空,或設置某個字段數據為空如下面語句

UPDATE tb_zichan SET Logliushui ='20150318',JieChuRen ='人',JieChuRenDianHua =null,JieChuWeiZhi ='537',YuGuiHuanShiJian ='2015-03-18',JingShouRen ='dhfjh',JieChuShiJian ='2015-04-28 18:33:42',JieChuRenEMail ='',JieChuZhuangTai ='hfudgf' where SheBeiBianHao is null

4、如果遇到表中的某個字段類型不匹配錯誤

前提是使用數據庫時改變了數據庫中的字段類型時,運行Undac中的表會報表中字段與數據庫字段不匹配錯誤。
通常將Undac中的table中的fields雙擊打開,刪除裡面的所有字段,然後連接數據庫重新添加所有字段就可以了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved