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

ADOQuery1

答題得分者是:leveon
tp6jo3long
一般會員


發表:7
回覆:5
積分:2
註冊:2012-10-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2012-10-17 14:41:48 IP:114.34.xxx.xxx 訂閱
之前是使用foxpro 習慣使用cursor  delphi有類似的方式嗎?
ADOQuery1從資料庫抓下來的資料不影響到而卻要從ADOQuery1在取出我需要的資料再存到另外一個資料表應該要怎麼做比較好?
要找的資料關鍵字應該如何下?
P.D.
版主


發表:571
回覆:3888
積分:3677
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2012-10-17 21:09:54 IP:220.136.xxx.xxx 未訂閱
你應該針對你想要的目的說明清楚, 否則沒有人看懂你想表達的意思
習慣cursor??
foxpro, dbase 是有一組記錄指標很好用, 要說為cursor 也應該可以,
不過所謂習慣curosr 是指要移動來移動去, 以往指定到第n筆嗎? 還是其他呢?
在物件的資料庫中, 尤其以SQL系列, 對於所謂的指標幾乎已經是不見了,
所以自然在移動上不是很好用, 這是我們由 FOXPRO, DBASE 轉入的用戶必須要去接受的事實,
也要去改變的想法, 剛開始在使用時, 我也是很不習慣
所以你還是說清楚你想要的功能是什麼!
老大仔
尊榮會員


發表:77
回覆:835
積分:1082
註冊:2006-07-06

發送簡訊給我
#3 引用回覆 回覆 發表時間:2012-10-18 12:45:35 IP:210.61.xxx.xxx 未訂閱
1.
ADOQuery1.First;
for i := 0 to .... do
begin

ADOQuery1.Next;
end;

2.請爬文

另外,標題別打元件名稱
可以直接簡明敘述問題
不然這類發文標題可能會被打槍....
delphi.ktop.com.tw/board.php

leveon
資深會員


發表:30
回覆:386
積分:303
註冊:2012-02-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2012-10-19 01:10:25 IP:111.240.xxx.xxx 訂閱
路過~插花
以資料庫處理的角度來說 Delphi是遠遠比不上Foxpro的
這是轉到Delphi前 該有的認知
Delphi 一切都是物件 依你的需求
你可能需要產生兩個Dataset物件 來裝兩組資料 還要自己釋放掉

Foxpro幾行能搞定的東西 Delphi可能要上百行
但GUI物件 3rd數量 Foxpro是完全無法相比
語言特性決定產品特性 各有千秋囉

.Net的Linq 也是很好東西 可以的話 你也可以考慮看看.Net平台


GrandRURU
站務副站長


發表:235
回覆:1655
積分:1753
註冊:2005-06-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2012-10-19 08:52:10 IP:59.120.xxx.xxx 未訂閱
合併 Foxpro 的 SQL Server本身就有 Cursor了

如果真的非用不可,也可以直接使用 Stored Procedure

tp6jo3long
一般會員


發表:7
回覆:5
積分:2
註冊:2012-10-03

發送簡訊給我
#6 引用回覆 回覆 發表時間:2012-10-22 11:11:14 IP:114.34.xxx.xxx 訂閱
謝謝~各位大大的回應
在foxpro使用CREATE cursor可以隨意建立暫存表(T1)再加工存到另外一個暫存表(T2)上 再以報表的方式呈現或轉成EXCEL
ADOQuery1算是暫存表? 那樣怎麼將ADOQuery1的資料(不異動資料庫上的資料)篩選要的資料後存入ADOQuery2?
老大仔
尊榮會員


發表:77
回覆:835
積分:1082
註冊:2006-07-06

發送簡訊給我
#7 引用回覆 回覆 發表時間:2012-10-22 12:48:25 IP:210.61.xxx.xxx 未訂閱
我個人覺得...
您應該還沒爬文&翻書
只想要個解答



既然這樣
就給基本的3個做法

1.依此文章
delphi.ktop.com.tw/board.php
在編輯後再用迴圈 另一個ADOQuery丟到另一個資料表中
當然!可以省掉那個編輯步驟

2.將Select出來的資料丟到另一個暫存的Table中
再針對該暫存表進行編輯
編輯完後再將該暫存資料表的資料丟到您要的目的地資料表中
同1,可以省掉那個編輯步驟

3.SQL有2個語法...
A.Select...into
B.Insert Into...
當然,語法不只這兩種
至於怎麼用...請 自 行 爬 文

假如是沒有經過任何修改的話
其實第三點已經可以答到目的了...
編輯記錄
老大仔 重新編輯於 2012-10-21 22:51:34, 註解 無‧
老大仔 重新編輯於 2012-10-21 22:52:00, 註解 無‧
leveon
資深會員


發表:30
回覆:386
積分:303
註冊:2012-02-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2012-10-22 15:17:14 IP:118.165.xxx.xxx 訂閱
暫存的資料表 可使用TClientdataset 放在記憶體中 請參閱
http://www.scalabium.com/faq/dct0150.htm
Clientdataset的結構是空白的 必須拷貝ADOQuery1的結構
請參閱
http://delphi-inspired.blogspot.tw/2012/04/how-to-clone-tfield-and-tdataset-fields.html
對Foxpro 無法忘情 可用Adocommand傳Foxpro指令
google "execscript ADO"
var
m:string;
m := 'EXECSCRIPT("'
'USE CNC_Work SHARED' chr(13)
'SET ORDER TO 1' chr(13)
'SEEK [000] ' chr(13)
'REPLACE CNC_Path WITH [323312] ' chr(13)
....................
'")';
ADOConnection1.Open;
ADOCommand1.CommandText := m;
ADOCommand1.Execute;
如果看不懂 建議找一本書 從基礎學起
===================引 用 tp6jo3long 文 章===================
謝謝~各位大大的回應
在foxpro使用CREATE cursor可以隨意建立暫存表(T1)再加工存到另外一個暫存表(T2)上 再以報表的方式呈現或轉成EXCEL
ADOQuery1算是暫存表? 那樣怎麼將ADOQuery1的資料(不異動資料庫上的資料)篩選要的資料後存入ADOQuery2?
tp6jo3long
一般會員


發表:7
回覆:5
積分:2
註冊:2012-10-03

發送簡訊給我
#9 引用回覆 回覆 發表時間:2012-10-22 17:33:58 IP:114.34.xxx.xxx 訂閱
 謝謝 指導!
這幾天有拿到書
系統時間:2017-12-15 4:55:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!