|
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
Batman
註冊時間: 2003-11-15 文章: 348
第 1 樓
|
發表於: 星期二 一月 12, 2010 3:37 pm 文章主題: 在Procedure內, 能否將2個Procedure的資料合併, 然後再出來? |
|
|
如:Procedure A
Select EmpID,Name From EmpInfo
Procedure B
Select EmpID, DeptName Form Department
Procedure C
合併以上Procedure A 及 B , 出來結果如:
Select a.EmpID,Name,DeptName From EmpInfo a,Department b where a.EmpID=b.EmpID
以上祗是簡單範例 |
|
回頂端 |
|
|
LiuRambo
註冊時間: 2007-11-27 文章: 481
第 2 樓
|
發表於: 星期五 一月 15, 2010 7:04 am 文章主題: |
|
|
在執行c之前先執行過A跟B
理論上是可行的
你要想的是在a與b之間的執行結果如何能夠'保留'給其他程序讀取到 |
|
回頂端 |
|
|
Batman
註冊時間: 2003-11-15 文章: 348
第 3 樓
|
發表於: 星期六 一月 16, 2010 11:27 pm 文章主題: |
|
|
你要想的是在a與b之間的執行結果如何能夠'保留'給其他程序讀取到--->是的,不知應怎做? |
|
回頂端 |
|
|
goodnight
註冊時間: 2008-10-13 文章: 472 來自: 台南市
第 4 樓
|
發表於: 星期日 一月 17, 2010 10:32 pm 文章主題: |
|
|
Select EmpInfo.EmpID, EmpInfo.Name, Department.DeptName ;
From EmpInfo, Department ;
where EmpInfo.EmpID = Department.EmpId
這樣不就好了, 何必多此一舉??
但是, 原則上, 有時候我的確會先處理出某些結果再合併, 是有這樣的用法沒錯 |
|
回頂端 |
|
|
Batman
註冊時間: 2003-11-15 文章: 348
第 5 樓
|
發表於: 星期二 一月 19, 2010 5:54 pm 文章主題: |
|
|
我祗是用簡單舉例, 其實是你想法一樣, 要先處理一些資料再合併, 有時部份處理資料尚會用在其他合位地方, 所以才想問一能不能用一個Procedure將2個Procedure一次性抽取資料 |
|
回頂端 |
|
|
LiuRambo
註冊時間: 2007-11-27 文章: 481
第 6 樓
|
發表於: 星期五 一月 22, 2010 1:52 pm 文章主題: |
|
|
資料要能'穿透',直接建立成cursor不就得了
只要沒有close掉,資料愛怎麼用就怎麼用不是嗎 |
|
回頂端 |
|
|
cdy
註冊時間: 2008-12-30 文章: 26
第 7 樓
|
發表於: 星期五 二月 12, 2010 3:45 pm 文章主題: |
|
|
第一個proc中
select 工號,姓名 into ##cursor_all01 from 員工檔
第2個proc中
select 工號,部門名 into ##cursor_all02 from 部門檔
第3個proc中,就可看到所有全域的cursor
select ##cursor_all01.工號,##cursor_all01.姓名,##cursor_all02.部門名
from ##cursor_all01,##cursor_all02 where ##cursor_all01.工號=##cursor_all02.工號
註1:用完後,請關閉暫存檔 drop table ##cursor_all01及 drop table ##cursor_all02
註2: #cursor_local 一個#號為: 區域暫存檔,一離開proc就自動關畢,無法穿透給它人用 |
|
回頂端 |
|
|
foxy
註冊時間: 2007-08-16 文章: 245 來自: 泰國
第 8 樓
|
發表於: 星期日 六月 20, 2010 9:23 pm 文章主題: |
|
|
Procedure A
LOCAL lcCursorName
m. lcCursorName='TMP'+SYS(2015)
&&確定新的CURSOR不會關閉已有的CURSOR
DO WHILE USED(m. lcCursorName)
m. lcCursorName='TMP'+SYS(2015)
ENDDO
Select EmpID,Name From EmpInfo INTO CURSOR (m. lcCursorName)
RETURN m. lcCursorName
ENDPROC
Procedure B
LOCAL lcCursorName
m. lcCursorName='TMP'+SYS(2015)
DO WHILE USED(m. lcCursorName)
m. lcCursorName='TMP'+SYS(2015)
ENDDO
Select EmpID, DeptName Form Department INTO CURSOR (m. lcCursorName)
RETURN m. lcCursorName
ENDPROC
Procedure C
LOCAL lcCursor1,lcCursor2
m.lcCursor1=A()
m.lcCursor2=B()
Select a.EmpID,a.Name,b.DeptName;
From (m.lcCursor1) as a;
INNER JOIN (m.lcCursor2) as b;
ON a.EmpID=b.EmpID
ENDPROC _________________ 進銷存+生產製造+會計+員工薪資+CRM+POS零售+餐廳手機app+電商手機app+電商網站,物流系統. 正/簡體中文,英,日,泰,緬甸文. MS SQL Server + 前台 VFP + PHP 網站 + Flutter 手機 App, 都共享 MS SQL Server的資料. www.foxacc.com LINE: mike-lm |
|
回頂端 |
|
|
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|