請問有哪個物件可以拿來當臨時資料表嗎? |
答題得分者是:GrandRURU
|
tp6jo3long
一般會員 發表:7 回覆:5 積分:2 註冊:2012-10-03 發送簡訊給我 |
|
mypigbaby
高階會員 發表:11 回覆:168 積分:155 註冊:2006-07-20 發送簡訊給我 |
如果是SQL SERVER
豬寶寶建議用#開頭的來當臨時資料表 ===================引 用 tp6jo3long 文 章=================== 有試用ADOQuery沒有指定實體的資料表直接ADOQuery1.Insert就會發生錯誤"ADOQuery1: cannot perform this operation on a closed dataset" ADOQuery可以這樣使用嗎(少設定什麼?)? 有哪個物件可以當臨時資料表? |
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
delphi.ktop.com.tw/board.php
七樓的回文你有看嗎? ===================引 用 tp6jo3long 文 章=================== 有試用ADOQuery沒有指定實體的資料表直接ADOQuery1.Insert就會發生錯誤"ADOQuery1: cannot perform this operation on a closed dataset" ADOQuery可以這樣使用嗎(少設定什麼?)? 有哪個物件可以當臨時資料表? |
christie
資深會員 發表:30 回覆:299 積分:475 註冊:2005-03-25 發送簡訊給我 |
CLIENTDATASET
===================引 用 tp6jo3long 文 章=================== 有試用ADOQuery沒有指定實體的資料表直接ADOQuery1.Insert就會發生錯誤"ADOQuery1: cannot perform this operation on a closed dataset" ADOQuery可以這樣使用嗎(少設定什麼?)? 有哪個物件可以當臨時資料表?
------
What do we live for if not to make life less difficult for each other? |
tp6jo3long
一般會員 發表:7 回覆:5 積分:2 註冊:2012-10-03 發送簡訊給我 |
|
leveon
資深會員 發表:30 回覆:389 積分:303 註冊:2012-02-12 發送簡訊給我 |
8樓的回文 你有看嗎 顆顆
http://delphi.ktop.com.tw/board.php?cid=30&fid=66&tid=104615#8 請參閱 http://delphi-inspired.blogspot.tw/2012/04/how-to-clone-tfield-and-tdataset-fields.html ===================引 用 tp6jo3long 文 章=================== 不好意思直接使用ClientDataSet1(新增沒動過任何設定) ClientDataSet1.open; ClientDataSet1.insert;
一樣不可以耶 那樣如何新增資料當作臨時資料表? |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
個人覺得豬寶寶這個做法比較容易,請你參考一下吧…但你都沒說到你的db是哪款的…
否則用 select * into #temp …… 然後再將此#temp 資料庫用 adoquery來搞就行… 當然,若你的db完全沒支持那 select into 的語法,或者也沒temp的資料表的做法…那就只好 clientdataset來做為一個臨時的客戶端來搞…但一整個也不是很容易就是。要看的與學的不少。 以上的技巧都覺得過難的話,那就自己開一至數個真實的"臨時表" (欄位結構與某來源是一樣的),然後使用前delete *,便可塞入新值,惡搞一通…再輸出。 ===================引 用 mypigbaby 文 章=================== 如果是SQL SERVER 豬寶寶建議用#開頭的來當臨時資料表 ===================引 用 tp6jo3long 文 章=================== 有試用ADOQuery沒有指定實體的資料表直接ADOQuery1.Insert就會發生錯誤"ADOQuery1: cannot perform this operation on a closed dataset" ADOQuery可以這樣使用嗎(少設定什麼?)? 有哪個物件可以當臨時資料表?
------
蕭沖 --All ideas are worthless unless implemented-- C++ Builder Delphi Taiwan G+ 社群 http://bit.ly/cbtaiwan |
t27
中階會員 發表:34 回覆:95 積分:90 註冊:2002-06-19 發送簡訊給我 |
可參考用使用TxQuery元件
http://chee-yang.blogspot.tw/2009/12/txquery-20.html |
tp6jo3long
一般會員 發表:7 回覆:5 積分:2 註冊:2012-10-03 發送簡訊給我 |
select * into #temp 會出現錯誤
剛接觸DELPHI很多都不知道,還請多多指導 文 章=================== 否則用 select * into #temp …… 當然,若你的db完全沒支持那 select into 的語法,或者也沒temp的資料表的做法…那就只好 clientdataset來做為一個臨時的客戶端來搞…但一整個也不是很容易就是。要看的與學的不少。 以上的技巧都覺得過難的話,那就自己開一至數個真實的"臨時表" (欄位結構與某來源是一樣的),然後使用前delete *,便可塞入新值,惡搞一通…再輸出。 |
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
1.為何需要用for+if?
何不在Select 時下條件後再直接丟到TempTable 這樣不是更好? 連程式碼都省了 2.既然是MYSQL 那您是否應該要先去搜尋有關使用暫存資料表語法的文章會比較妥? key word: mysql select into 豬寶寶大大的語法是MS-SQL 有些語法在MySQL不見得有相容(不確定,請自行爬文) 3.基本的做法應該是: 清空TempTable ADOQuery1 查詢出資料 使用for if 假如該筆資料為所需的資料 再用ADOQuery2 Insert into到TempTable中 其實, 3應該已經算是程式碼了... ===================引 用 tp6jo3long 文 章=================== 暫存格式內沒有資料 兩個都select完後 ---既然暫存表沒資料就不用再Select,只要在每次使用前清空即可如同aftcast前輩所說 再用for if 將ADOQuery1在挑出要的資料存入ADOQuery2 之前也有看到#使用的文章 但是不知道怎麼用才可以 有直接打===================引 用aftcast個人覺得豬寶寶這個做法比較容易,請你參考一下吧…但你都沒說到你的db是哪款的… 然後再將此#temp 資料庫用 adoquery來搞就行… 以上的技巧都覺得過難的話,那就自己欄位結構與某來源是一樣的),然後使用前delete *,便可塞入新值,惡搞一通…再輸出。
編輯記錄
老大仔 重新編輯於 2012-10-24 22:53:53, 註解 無‧
|
tp6jo3long
一般會員 發表:7 回覆:5 積分:2 註冊:2012-10-03 發送簡訊給我 |
感謝老大 多次指點
沒有直接在Select上加條件 要把資料抓下來後將資料做加工 部分資料改成*號或作一些處理後再秀成報表 第三個 是不是就是我現在所用的方式?? 文 章=================== 何不在Select 時下條件後再直接丟到TempTable 連程式碼都省了 那您是否應該要先去搜尋有關使用暫存資料表語法的文章會比較妥? 豬寶寶大大的語法是MS-SQL 3.基本的做法應該是: ADOQuery1 查詢出資料 假如該筆資料為所需的資料 其實, 3應該已經算是程式碼了... |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
Temp Table with ClientDataSet 的方法
http://topic.csdn.net/u/20070110/10/a53606ce-bcdc-4528-978d-0ccae51de735.html 節錄它的解答 [code delphi] DataSetProvider1.dataset = adoquery ClientDataSet.Providername = DataSetProvider1 配置好属性后 //////////// function GetDataSet(SQLCommand:string;DataSet:TClientDataSet): Integer; begin try adoconnection1.Connected:=false; adoconnection1.Connected:=true; clientdataset1.Active:=false; clientdataset1.CommandText:=SQLCommand; clientdataset1.Active:=true; DataSet.Data:=ClientDataSet1.Data; clientdataset1.Active:=false; result:=S_OK; except result:=S_False; end; end; [/code] |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |