unicode寫入資料庫 |
答題得分者是:william
|
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
大家好:
小弟測試unicode元件,但是到寫入資料庫中,就不是如想像中完美!!!
with ADOQuery2 do
begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO aa (txt) VALUES('''+(TntEdit1.Text)+''')');
// SQL.Add('INSERT INTO aa (txt) VALUES(:q1)');
// Parameters.ParamByName('q1').Value:=TntEdit1.Text ;
ExecSQL;
end;
TntEdit 為unicode元件,可以在上面直接打 '堃'
但是寫入資料庫會變成 '?'
測試資料庫為ACCESS
欄位型態 '文字'
UNICODE 編碼 '是'
請問是哪裡出錯,為何寫不進去access
------
====================== 昏睡~ 不昏睡~ 不由昏睡~ |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
|
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
|
bookworm
中階會員 發表:63 回覆:161 積分:82 註冊:2002-08-03 發送簡訊給我 |
這個東西不知道對你有沒有幫助?
http://www.delphi-unicode.net/Tools.php
UDExtract is a command line tool to convert the Unicode character database and optionally additional files into a resource script which can be compiled by a resource compiler to a *.res file (a compressed version of this data is available via the links given above). The resource file can then be used in applications to access various character properties. The Unicode library on this page uses such a resource file for casing, decomposition etc. ---
從問中學 ^^
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
Access 是用 unicode 的吧,你是用非中文 Windows 開發?小弟正是在英文 XP Pro (non-unicode locale 設成 BIG5) 開發,用 ADO 中文會變成亂碼,反而 BDE + ODBC 就沒有問題。但是 compile 好的 ADO 程式在中文 Windows (XP) 下是沒有亂碼的 所以建議將 > 如果真的想用 href="http://home.ccci.org/wolbrink/tnt/delphi_unicode_controls.htm">http://home.ccci.org/wolbrink/tnt/delphi_unicode_controls.htm
|
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
謝謝bookworm兄的提供,但是這不只是unicode在程式上顯示的問題,還包含
了ado元件中sql語法輸入後端資料庫後是否正確的寫入unicode字型所以還
是有點麻煩,
關於william兄說的用bde溝通,小弟也試了
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO aa VALUES(:q1)');
ParamByName('q1').Value:=TntEdit2.Text ;
ExecSQL;
end;
小弟是中文win,結果也是輸入堃--> 出現
------
====================== 昏睡~ 不昏睡~ 不由昏睡~ |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
|
bookworm
中階會員 發表:63 回覆:161 積分:82 註冊:2002-08-03 發送簡訊給我 |
|
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
各位觀眾:
成功案例 ADO 使用方式
引言: uses TntStdCtrls; type TForm1 = class(TForm) DataSource1: TDataSource; Button1: TButton; TntDBGrid1: TTntDBGrid; ADOQuery1: TADOQuery; TntEdit1: TTntEdit; ..... procedure TForm1.Button1Click(Sender: TObject); begin with ADOQuery1do begin Close; SQL.Clear; SQL.Add('INSERT INTO aa VALUES(:q1)'); Parameters.ParamValues['q1']:=TntEdit1.Text; ExecSQL; end; end;失敗案例 BDE 使用方式 引言: // 當然元件加了 // Database1: TDatabase; // Query1: TQuery; procedure TForm1.Button1Click(Sender: TObject); begin with Query1 do begin Close; SQL.Clear; SQL.Add('INSERT INTO aa VALUES(:q1)'); ParamByName('q1').DataType:= ftWideString; ParamByName('q1').AsString :=TntEdit1.Text ; //ParamByName('q1').Value:=TntEdit1.Text ; ExecSQL; end; end;註: TntEdit1.Text都是輸入 --> 堃 這個顧人怨的字.. 例外: 當用ADO透過ODBC連接,可以在TTntDBGrid顯示access中的unicode字型 but.. 用BDE透過ODBC連接,卻在TTntDBGrid中無法顯示unicode字型 這是為什麼呢? 小弟的
------
====================== 昏睡~ 不昏睡~ 不由昏睡~ |
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
|
william
版主 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
ko
資深會員 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
|
bookworm
中階會員 發表:63 回覆:161 積分:82 註冊:2002-08-03 發送簡訊給我 |
這邊有BDE的驅動,你可以選擇適合的版本試試。
http://delphi.ktop.com.tw/forum.asp?FORUM_ID=59 ---
從問中學 ^^
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |