線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1388
推到 Plurk!
推到 Facebook!

請問一個有關欄位的怪問題....thx

尚未結案
foxelf
初階會員


發表:9
回覆:42
積分:30
註冊:2003-03-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-25 17:54:18 IP:61.222.xxx.xxx 未訂閱
在程式中使用了StringGrid,若user key in 的資料超過255,存到資料庫的時候會變成亂碼,資料庫的欄位型態為text 有哪位大大能幫我一下 謝謝
azurecloud
中階會員


發表:52
回覆:108
積分:92
註冊:2003-09-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-25 22:38:26 IP:163.13.xxx.xxx 未訂閱
Hi, foxelf 您好:   請問您的資料庫系統是那一種呢? 資料庫欄位中有沒有設定 text 欄位的 長度呢?依我看只要重新設定欄位長度這個問題就可以解決了。再不行的話 把欄位改成 memo 模式一定 ok ,但是不建議啦…
azurecloud
中階會員


發表:52
回覆:108
積分:92
註冊:2003-09-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-25 22:42:28 IP:163.13.xxx.xxx 未訂閱
Hi, foxelf 您好: 啊,我想您用的是 Access 吧,它的資料格式中 「文字」欄位的長度 最大就是 255 ,所以若輸入的文字長度會超過 255字元的話請改用「備忘」 這種欄位就可以解決。
foxelf
初階會員


發表:9
回覆:42
積分:30
註冊:2003-03-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-26 09:09:37 IP:61.222.xxx.xxx 未訂閱
引言: Hi, foxelf 您好: 啊,我想您用的是 Access 吧,它的資料格式中 「文字」欄位的長度 最大就是 255 ,所以若輸入的文字長度會超過 255字元的話請改用「備忘」 這種欄位就可以解決。
我使用的是sybase的資料庫,text型態欄位的長度是2gb,看不出來text的欄位長度是不是255
azurecloud
中階會員


發表:52
回覆:108
積分:92
註冊:2003-09-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-26 22:22:48 IP:163.13.xxx.xxx 未訂閱
Hi, foxelf 您好:   很抱歉我沒用過 sybase ,是我猜錯了,對不住哦。 後來我用 access 測試兩種連接資料庫的方法,語法如下    一、:      conn:=CreateOleObject('ADODB.Connection');      rs:= CreateOleObject('ADODB.RecordSet');      databasename := ExtractFilePath(Application.ExeName)+'db1.mdb';      connstr:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + trim(databasename);;      conn.open(connstr);      tempstr := stringgrid1.Cells[2,2];      sql := 'insert into test(testmemo) values( '''+ tempstr +''')';       rs:=conn.execute(sql);    二、:       tempstr := stringgrid1.Cells[2,2];       sql := 'insert into test(testmemo) values( '''+ tempstr +''')';       adocommand1.CommandText := sql;       adocommand1.Execute;    我的 stringgrid1.Cells[2,2] 欄位中放入超過 255 字元的文字後,用上兩個 方法試後,若是資料庫欄位不夠長的話,會出現如下錯誤訊息: 那若是 memo 欄位的話則是正常存入,字元沒有被截斷,也沒有出現亂碼的現象, 給您做參考。 我要努力向上~~
foxelf
初階會員


發表:9
回覆:42
積分:30
註冊:2003-03-05

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-27 09:30:40 IP:61.222.xxx.xxx 未訂閱
謝謝 這位大大的幫忙 早上我也試出來了 如果是用 Query1.ParamByName('TEXT').AsString 的語法,最多只能塞長度255的字元 只要將AsString 改成 AsMemo 問題就可以解決了
azurecloud
中階會員


發表:52
回覆:108
積分:92
註冊:2003-09-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-11-27 11:10:56 IP:163.13.xxx.xxx 未訂閱
Hi, foxelf 您好: 恭喜您試出來了,很不好意思沒幫上什麼忙,原來是 AsString 與 AsMemo 的差別,又讓我學了一招,謝謝你。 我要努力向上~~
系統時間:2024-06-29 13:41:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!