全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:145
推到 Plurk!
推到 Facebook!

請問ADO如何取出超過十位數的數字

答題得分者是:charleshwu
yish35
一般會員


發表:5
回覆:29
積分:6
註冊:2007-01-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2017-09-13 10:31:17 IP:60.251.xxx.xxx 未訂閱
廠商的DB中CardNo為十位數字,我試者用query1.FieldByName('CardNO').AsLargeInt
其實不論As後面接什麻,他都出現Overflow while converting Variant of type (Cardinal) into type(Integer)
請問先進有沒有好方式可以正常從資料庫取出十位數的數值
------
環境 DELPHI 7
Delphi 新手,請多指教
P.D.
版主


發表:571
回覆:3878
積分:3665
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2017-09-13 18:10:24 IP:61.223.xxx.xxx 未訂閱
如果以 asstring 轉成字串再做處理呢? 通常長整數我都會定義為int64或float比較能過關
yish35
一般會員


發表:5
回覆:29
積分:6
註冊:2007-01-10

發送簡訊給我
#3 引用回覆 回覆 發表時間:2017-09-14 09:56:40 IP:60.251.xxx.xxx 未訂閱
因為是門禁卡公司程式,所以也不能修改資料庫,他們的程式也是使用DELPHI寫的
query1.FieldByName('CardNO').Asstring;依然有同樣的錯誤
目前 NO只有六位數,所以當沒有問題,但卡號就....

使用軟體看db結構
No int(10),CardNo int(10),DateAndTime Datetime

===================引 用 P.D. 文 章===================
如果以 asstring 轉成字串再做處理呢? 通常長整數我都會定義為int64或float比較能過關
------
環境 DELPHI 7
Delphi 新手,請多指教
GrandRURU
站務副站長


發表:234
回覆:1648
積分:1741
註冊:2005-06-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2017-09-14 11:20:59 IP:59.120.xxx.xxx 未訂閱
用 Devart MyDAC 試試

如果可以用,就代表 ADO 搭配的 ODBC 版本不對

===================引 用 yish35 文 章===================
因為是門禁卡公司程式,所以也不能修改資料庫,他們的程式也是使用DELPHI寫的
query1.FieldByName('CardNO').Asstring;依然有同樣的錯誤
目前 NO只有六位數,所以當沒有問題,但卡號就....

使用軟體看db結構
No int(10),CardNo int(10),DateAndTime Datetime

===================引 用 P.D. 文 章===================
如果以 asstring 轉成字串再做處理呢? 通常長整數我都會定義為int64或float比較能過關
it1506
初階會員


發表:28
回覆:82
積分:47
註冊:2011-02-16

發送簡訊給我
#5 引用回覆 回覆 發表時間:2017-09-14 13:06:14 IP:59.120.xxx.xxx 未訂閱
有試過用 currency 嗎??

yish35
一般會員


發表:5
回覆:29
積分:6
註冊:2007-01-10

發送簡訊給我
#6 引用回覆 回覆 發表時間:2017-09-14 17:57:04 IP:60.251.xxx.xxx 未訂閱
一樣的訊息=
===================引 用 it1506 文 章===================
有試過用 currency 嗎??

------
環境 DELPHI 7
Delphi 新手,請多指教
yish35
一般會員


發表:5
回覆:29
積分:6
註冊:2007-01-10

發送簡訊給我
#7 引用回覆 回覆 發表時間:2017-09-15 09:26:59 IP:60.251.xxx.xxx 未訂閱
大大,我下載試用版確實是可以用,也正常
ADO的ODBC中我用了3.5.1、5.3.9 結果都一樣
請問一下ODBC Driver是搭MYSQL版本還是Client端安裝的Windows版本??
MYSQL V5.5.14 安裝Windows 2003上..
Clent Windows 為 WIndows 10
===================引 用 GrandRURU 文 章===================
用 Devart MyDAC 試試

如果可以用,就代表 ADO 搭配的 ODBC 版本不對

===================引 用 yish35 文 章===================
因為是門禁卡公司程式,所以也不能修改資料庫,他們的程式也是使用DELPHI寫的
query1.FieldByName('CardNO').Asstring;依然有同樣的錯誤
目前 NO只有六位數,所以當沒有問題,但卡號就....

使用軟體看db結構
No int(10),CardNo int(10),DateAndTime Datetime

===================引 用 P.D. 文 章===================
如果以 asstring 轉成字串再做處理呢? 通常長整數我都會定義為int64或float比較能過關
------
環境 DELPHI 7
Delphi 新手,請多指教
charleshwu
一般會員


發表:0
回覆:1
積分:5
註冊:2016-05-20

發送簡訊給我
#8 引用回覆 回覆 發表時間:2017-09-15 11:00:32 IP:175.96.xxx.xxx 未訂閱
直接在 select 敘述裡把那個欄位改成字串或  BCD,如 select CAST(xxfield as STRING) from xxtable 或 select CAST(xxfield as DECIMAL(10,0)) from xxtable

在實際的資料庫上試試看就知道如何修改
yish35
一般會員


發表:5
回覆:29
積分:6
註冊:2007-01-10

發送簡訊給我
#9 引用回覆 回覆 發表時間:2017-09-15 14:25:10 IP:60.251.xxx.xxx 未訂閱

這是可以使用的SQL語法,感謝大大
select Cast(CardNo as DECIMAL(10,0)) as a,name from accessrecord


===================引 用 charleshwu 文 章===================
直接在 select 敘述裡把那個欄位改成字串或 BCD,如 select CAST(xxfield as STRING) from xxtable 或 select CAST(xxfield as DECIMAL(10,0)) from xxtable

在實際的資料庫上試試看就知道如何修改
------
環境 DELPHI 7
Delphi 新手,請多指教
系統時間:2017-09-25 3:18:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!