使用 TADOQuery 查詢欄位問題?? |
缺席
|
elvis114
一般會員 發表:37 回覆:53 積分:18 註冊:2003-06-17 發送簡訊給我 |
使用 Delphi6 元件 TADOQuery 查詢 Sql Command :
Select A.Branch,A.Account,A.TradeType, A.CommodityID,A.Commodity,A.Bscode,A.SettlementDate,A.PriceType,A.OrderType, A.OrdSeq,A.OrigOrdSeq,A.PreOrdSeq,A.RecordType,A.TradeAction,A.OrderNo, A.Bscode1,A.SettlementDate1,A.StrikePrice1,A.RightType1, A.BScode2,A.SettlementDate2,A.StrikePrice2,A.RightType2, A.OpenOffset,A.OrdPrice,A.OrdLots,A.ChangeLots,A.LeavesLots,A.CumLots, A.Status,A.Valid,A.SessionType,A.SenderID,A.InPutIP,A.ErrCode, A.OrderDate,A.TradeDate,A.MatchDate,A.SysReplyDate,A.CAID, A.Server80IP,A.WebServerIP,A.OrderMatchIP,A.CreateTime,A.ModifyTime, B.Name,C.Msg From Order_s A , Account B , ErrMsg C Where 1=1 And A.Branch = '000' and A.Account = '1234567' and A.Account=B.Account and A.Branch=B.Branch and C.ErrCode = A.ErrCode and TO_CHAR(A.TradeDate, 'YYYYMMDD') BETWEEN '20070829' AND '20070829' Order By A.OrderDate desc 當 ADO.OPEN 時會出現 如果少一些欄位 select 就不會發生此問題,請問是不是 TADOQuery 元件有 Bug?? Order_S Table,原本舊的45個欄位,是配合專案再增加到 63個欄位,就會發生此問題,麻煩大大,謝謝‧
------
願 南無藥師琉璃光如來 保佑您 |
johnber
一般會員 發表:2 回覆:9 積分:2 註冊:2003-09-04 發送簡訊給我 |
|
elvis114
一般會員 發表:37 回覆:53 積分:18 註冊:2003-06-17 發送簡訊給我 |
我有試過 sql command :
Select A.*,B.Name,C.Msg From Order_s A , Account B , ErrMsg C Where 1=1 And A.Branch = '000' and A.Account = '1234567' and A.Account=B.Account and A.Branch=B.Branch and C.ErrCode = A.ErrCode and TO_CHAR(A.TradeDate, 'YYYYMMDD') BETWEEN '20070829' AND '20070829' Order By A.OrderDate desc 問題一樣??
------
願 南無藥師琉璃光如來 保佑您 |
瘋狂火星人
一般會員 發表:1 回覆:29 積分:6 註冊:2005-06-17 發送簡訊給我 |
這串sql指令如果拿到QueryAnalyser上執行會正確嗎???
另外請教,where 1=1 <==這個1=1是??? ===================引 用 elvis114 文 章=================== 我有試過 sql command : Select A.*,B.Name,C.Msg From Order_s A , Account B , ErrMsg C Where 1=1 And A.Branch = '000' and A.Account = '1234567' and A.Account=B.Account and A.Branch=B.Branch and C.ErrCode = A.ErrCode and TO_CHAR(A.TradeDate, 'YYYYMMDD') BETWEEN '20070829' AND '20070829' Order By A.OrderDate desc 問題一樣?? |
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
用 TADODataSet 試試
ADODataSet.CommandText := '你的 SQL 命令'; ADODataSet.Open; 個人使用的習慣是只使用 TADOConnection、TADOCommand、TADODataSet 這三個,而不使用 TADOQuery、TADOTable 因為 TADOQuery、TADOTable 這兩個是 Borland 為了讓 BDE 的使用者能「無痛升級」ADO 而另外寫的 真的「無痛」嗎?有不少人吃過 TADOQuery 的虧喔~~
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/ |
elvis114
一般會員 發表:37 回覆:53 積分:18 註冊:2003-06-17 發送簡訊給我 |
ADODataSet.Clear;
ADODataSet.CommandText := 'select * from Order_s '; ADODataSet.Open; 問題一樣 , 謝謝 ===================引 用 sryang 文 章=================== 用 TADODataSet 試試 ADODataSet.CommandText := '你的 SQL 命令'; ADODataSet.Open; 個人使用的習慣是只使用 TADOConnection、TADOCommand、TADODataSet 這三個,而不使用 TADOQuery、TADOTable 因為 TADOQuery、TADOTable 這兩個是 Borland 為了讓 BDE 的使用者能「無痛升級」ADO 而另外寫的 真的「無痛」嗎?有不少人吃過 TADOQuery 的虧喔~~
------
願 南無藥師琉璃光如來 保佑您 |
johnber
一般會員 發表:2 回覆:9 積分:2 註冊:2003-09-04 發送簡訊給我 |
|
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
|
elvis114
一般會員 發表:37 回覆:53 積分:18 註冊:2003-06-17 發送簡訊給我 |
|
johnber
一般會員 發表:2 回覆:9 積分:2 註冊:2003-09-04 發送簡訊給我 |
我以 SQLServer 實驗, SQLServer 有 timestamp 的資料型態, Delphi7 的 ADOQuery 也支援, 其型態為 TBytesField.
若您的 ADOQuery 連結的欄位是固定那幾個而不是動態的, 不妨在 ADOQuery 的 FieldsEditor 內以自動加入試試, ADOQuery 會自動幫您找最適合的資料型態, 我想 Delphi6 應該也行的. ===================引 用 elvis114 文 章=================== 謝謝各位大大的幫忙,我找到問題所在了,因為專案所以將 Order_s Table 中的 SYSREPLYDATE 欄位原本為 DATE 資料形態, 改為 TIMESTAMP(2) 資料形態 ,所以 TADOQuery 去 Open 這樣的欄位就出現 請問我使用 Delphi6 中的 ADO 物件不支援,那一個 Delphi 版本, 會 ADO 支援TIMESTAMP(2) 資料形態 ,或是更高的版本?? |
sryang
尊榮會員 發表:39 回覆:762 積分:920 註冊:2002-06-27 發送簡訊給我 |
SQL Server 的 timestamp 跟 oracle 的 timestamp(2) 是兩碼子事
SQL Server 的 timestamp 只是一個隨機取出來的數字,以二進位方式儲存,跟時間一點關係也沒有 oracle 的 timestamp(2) 真的就是時間戳記了 所以用 SQL Server 來測試這個問題是不準的 以下引用 SQL Server 線上叢書 timestamptimestamp 是顯露自動產生的二位元數字的資料型別,它保證在資料庫中為唯一的。timestamp 通常用於版本戳記資料表資料列的機制。儲存大小為 8 位元組。備註Transact-SQL timestamp 資料型別不同於 SQL-92 標準所定義的 timestamp 資料型別。但 SQL-92 timestamp 資料型別卻相等於 Transact-SQL datetime 資料型別。
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/ |
johnber
一般會員 發表:2 回覆:9 積分:2 註冊:2003-09-04 發送簡訊給我 |
呵呵, 汗顏......, 沒先去看 SQLServer 線上叢書.
長見識, 受教了. ===================引 用 sryang 文 章=================== 所以用 SQL Server 來測試這個問題是不準的 以下引用 SQL Server 線上叢書 timestamptimestamp 是顯露自動產生的二位元數字的資料型別,它保證在資料庫中為唯一的。timestamp 通常用於版本戳記資料表資料列的機制。儲存大小為 8 位元組。備註Transact-SQL timestamp 資料型別不同於 SQL-92 標準所定義的 timestamp 資料型別。但 SQL-92 timestamp 資料型別卻相等於 Transact-SQL datetime 資料型別。 |
elvis114
一般會員 發表:37 回覆:53 積分:18 註冊:2003-06-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |