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

DBGrid出現了value out of range 的 run time error

尚未結案
SHUAN
一般會員


發表:4
回覆:4
積分:1
註冊:2004-04-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-09 19:27:49 IP:203.75.xxx.xxx 未訂閱
當我的DBGRID.DataSource設為已正常OPEN的ClientDataSet後卻發生欄位value out of range,請問有人遇到此問題嗎??我該如何解決 我的 src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=15012432&CC=335748">
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-10 11:46:55 IP:218.32.xxx.xxx 未訂閱
SHUAN 你好: 請說明一下: 1. 何種資料庫 ? 2. 介面是 ADO ? BDE ? DBExpress ? ODBC ? 3. AREA欄位在 資料庫 與 Delphi 對應之 TField , 是什麼 DataType ? 光看 Error Message, 可先找找, AREA 欄中之 Data, 是否有異常 ?
SHUAN
一般會員


發表:4
回覆:4
積分:1
註冊:2004-04-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-11 18:45:58 IP:218.168.xxx.xxx 未訂閱
1. 何種資料庫 ?  使用Oracle DB 2. 介面是 ADO ? BDE ? DBExpress ? ODBC ?  介面是ADO 3. AREA欄位在 資料庫 與 Delphi 對應之 TField , 是什麼 DataType ?  TField未設定(不設定會自動判斷??)    光看 Error Message, 可先找找, AREA 欄中之 Data, 是否有異常 ? 我也懷疑過Area內容過,but,我拿掉area後就換其他欄位有問題了. 還有其他方式可查明原因出在哪嗎??
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-12 14:26:33 IP:218.160.xxx.xxx 未訂閱
Hi SHUAN 您好: 參考http://delphi.ktop.com.tw/topic.php?topic_id=30580 可能是型別錯誤, 在DataSet的Field Editor下是否有加入欄位? 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
SHUAN
一般會員


發表:4
回覆:4
積分:1
註冊:2004-04-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-12 14:32:25 IP:203.75.xxx.xxx 未訂閱
可是我在DataSet的Field Editor中並未加入任何欄位 我想,SQL中所SELECT出的欄位不是會自動SHOW在DBGRID中嗎?? 因此,這種錯誤是自動轉換型別錯誤的問題嗎?? 我該如何做比較好呢??
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-12 16:30:04 IP:218.160.xxx.xxx 未訂閱
Hi SHUAN: 方便將你的SQL指令Post上來嗎? 1.指令中有無用到轉型態的指令, 並有用到如Union的合併指令 2.試試在Delphi內附的SQL Explorer是否會這樣嗎. 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
SHUAN
一般會員


發表:4
回覆:4
積分:1
註冊:2004-04-06

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-04-12 20:17:38 IP:203.75.xxx.xxx 未訂閱
SQL中SELECT 欄位部分含有ROUND(FIELD,2) AREA. 我把ROUND拿掉後就不會有錯誤訊息了,可是所帶出的資料卻有很多的小數點,讓畫面顯示很亂. 該如何能夠只取小數點兩位,又不會有錯誤訊息發生呢?    
luowy651
高階會員


發表:257
回覆:313
積分:114
註冊:2003-04-09

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-04-12 20:25:53 IP:61.164.xxx.xxx 未訂閱
引言: SQL中SELECT 欄位部分含有ROUND(FIELD,2) AREA. 我把ROUND拿掉後就不會有錯誤訊息了,可是所帶出的資料卻有很多的小數點,讓畫面顯示很亂. 該如何能夠只取小數點兩位,又不會有錯誤訊息發生呢? < face="Verdana, Arial, Helvetica"> 你好,试试设定DisplayForm ,即你要的欄位設定 Display Format 為 0.00 即可
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-04-12 20:28:57 IP:210.243.xxx.xxx 未訂閱
http://delphi.ktop.com.tw/topic.php?topic_id=43708 這篇文章介紹了幾種方法..DisplayFormat, onGetText.等 您可以依喜好選則    
引言: SQL中SELECT 欄位部分含有ROUND(FIELD,2) AREA. 我把ROUND拿掉後就不會有錯誤訊息了,可是所帶出的資料卻有很多的小數點,讓畫面顯示很亂. 該如何能夠只取小數點兩位,又不會有錯誤訊息發生呢? < face="Verdana, Arial, Helvetica"> ~悠遊法國號~
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-04-13 17:01:17 IP:218.160.xxx.xxx 未訂閱
Hi SHUAN 你好: 我沒記錯的話Round函數裡面只可接收數字, 你必須檢查一下你的資料是否有NULL, 空白或是文字的可能. 若確定你的欄位是數字型態的話, 我們可以這樣下 ROUND(NVL(FIELD, 0),2) 試試看, 我這裡沒有環境, 要再麻煩你試試 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-04-13 21:29:46 IP:218.32.xxx.xxx 未訂閱
問一下, ADO相關的 DataSet 之 "EnableBCD" Property 是 True 嗎 ?
SHUAN
一般會員


發表:4
回覆:4
積分:1
註冊:2004-04-06

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-04-14 14:41:10 IP:220.130.xxx.xxx 未訂閱
那我很納悶的是,我將DataSet改為BDE的連結,所有FLOAT格式欄位就都可以使用ROUND()哩!!.改回ADO就不行.真奇怪..
系統時間:2024-06-28 19:41:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!