VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

vfp的select into

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
xzg



註冊時間: 2010-07-26
文章: 29
來自: 深圳

第 1 樓

發表發表於: 星期五 八月 13, 2010 10:44 am    文章主題: vfp的select into 引言回覆

想请教下,vfp的select * into 表b form 表A,其中表b一定要临时表么?我运行以下语句在编译时会提示语法错误,为什么呢?
查询原句是:((T_DTL) 是已经构建表结构的表)
select dd.SERIAL,dd.DO_NO,dd.TON_PN,dd.QTY,dd.PO_NO,t2.part_name,t2.cust_pn into (T_DTL) from dd inner join t2 on dd.ton_pn=?t2.ton_pn

谢谢.

_________________
學習,學習,再學習
回頂端
檢視會員個人資料 發送私人訊息
richshih



註冊時間: 2007-10-11
文章: 153


第 2 樓

發表發表於: 星期五 八月 13, 2010 10:56 am    文章主題: 引言回覆

INTO TABLE (會儲存於硬碟可讀寫)
INTO CURSOR(臨時的暫存資料表格,不會儲存於硬碟,除非有READWRITE否則不可讀寫)
回頂端
檢視會員個人資料 發送私人訊息
xzg



註冊時間: 2010-07-26
文章: 29
來自: 深圳

第 3 樓

發表發表於: 星期五 八月 13, 2010 11:27 am    文章主題: 引言回覆

richshih 寫到:
INTO TABLE (會儲存於硬碟可讀寫)
INTO CURSOR(臨時的暫存資料表格,不會儲存於硬碟,除非有READWRITE否則不可讀寫)

謝謝rich大大
那爲什麽我在vfp中select into 表 會提示出錯呢 而into cursor 表就沒問題

_________________
學習,學習,再學習
回頂端
檢視會員個人資料 發送私人訊息
syntech



註冊時間: 2003-05-16
文章: 4249
來自: Taipei,Taiwan

第 4 樓

發表發表於: 星期五 八月 13, 2010 11:29 am    文章主題: 引言回覆

為什麼你這麼肯定是 into table/into cursor 的錯 ?

為什麼我怎麼看也是語法錯誤?

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
xzg



註冊時間: 2010-07-26
文章: 29
來自: 深圳

第 5 樓

發表發表於: 星期五 八月 13, 2010 11:48 am    文章主題: 引言回覆

syntech 寫到:
為什麼你這麼肯定是 into table/into cursor 的錯 ?

為什麼我怎麼看也是語法錯誤?


syntech大大,我在調試程序時,走到select .. 的語句就跳出"syntax error"錯誤,而且僅當into 表時會有這樣的錯誤,而into cursor 可以運行通過.
我的本意是想通過兩個表的內連接后把數據導入已存在的另一個表中,所以考慮使用select into 語句,但運行就出現了以上的錯誤.不知道是哪出了問題,請賜教.
順便想請教下各位大大,vfp從表a複製數據到表b(以構建)有無其他方法,謝謝.[/img]

_________________
學習,學習,再學習
回頂端
檢視會員個人資料 發送私人訊息
pilipala



註冊時間: 2009-05-13
文章: 75


第 6 樓

發表發表於: 星期五 八月 13, 2010 2:27 pm    文章主題: 引言回覆

引言回覆:

走到select .. 的語句就跳出"syntax error"錯誤,而且僅當into 表時會有這樣的錯誤,而into cursor 可以運行通過.


因為 VFP 沒有 Select * into XX From DBF 的語法 ,只有
Select * From DBF into Cursor XX 或是
Select * From DBF into Table XX
回頂端
檢視會員個人資料 發送私人訊息
xzg



註冊時間: 2010-07-26
文章: 29
來自: 深圳

第 7 樓

發表發表於: 星期五 八月 13, 2010 3:18 pm    文章主題: 引言回覆

pilipala 寫到:
引言回覆:

走到select .. 的語句就跳出"syntax error"錯誤,而且僅當into 表時會有這樣的錯誤,而into cursor 可以運行通過.


因為 VFP 沒有 Select * into XX From DBF 的語法 ,只有
Select * From DBF into Cursor XX 或是
Select * From DBF into Table XX



pilipala,3q3q.我發現我的select漏了 table 囧,謝謝各位~!

_________________
學習,學習,再學習
回頂端
檢視會員個人資料 發送私人訊息
xzg



註冊時間: 2010-07-26
文章: 29
來自: 深圳

第 8 樓

發表發表於: 星期五 八月 13, 2010 3:43 pm    文章主題: 引言回覆

在弱弱的問下,Select * From DBF into Table XX 的xx須必是物理存在的表么?可以用有結構的臨時表部,謝謝
_________________
學習,學習,再學習
回頂端
檢視會員個人資料 發送私人訊息
區榮熾



註冊時間: 2005-11-14
文章: 191


第 9 樓

發表發表於: 星期五 八月 13, 2010 10:34 pm    文章主題: 引言回覆

xzg 寫到:
在弱弱的問下,Select * From DBF into Table XX 的xx須必是物理存在的表么?可以用有結構的臨時表部,謝謝

答案就在 <請再仔細的看6樓所寫的>..........眼看不清,就對號入座吧!

into xx (語法錯誤)(因為VFP不清楚你要存到那裡?)
into table xx (要寫入 ????)
into Cursor xx (要寫入 ????)


???? 代表的意思應該清楚了吧!
回頂端
檢視會員個人資料 發送私人訊息
xzg



註冊時間: 2010-07-26
文章: 29
來自: 深圳

第 10 樓

發表發表於: 星期六 八月 14, 2010 3:10 pm    文章主題: 引言回覆

區榮熾 寫到:
xzg 寫到:
在弱弱的問下,Select * From DBF into Table XX 的xx須必是物理存在的表么?可以用有結構的臨時表部,謝謝

答案就在 <請再仔細的看6樓所寫的>..........眼看不清,就對號入座吧!

into xx (語法錯誤)(因為VFP不清楚你要存到那裡?)
into table xx (要寫入 ????)
into Cursor xx (要寫入 ????)


???? 代表的意思應該清楚了吧!


額,是我沒有表達清楚,區大大說的我已經清楚了,我想問的是在load我建立了個臨時表A,在後面的程序我想把其他表的內容複製到表A中,用select......into table A,這種方法是不是不可行,也就是into table必須是物理存在的表,into cursor是在select后新建的臨時表?

_________________
學習,學習,再學習
回頂端
檢視會員個人資料 發送私人訊息
區榮熾



註冊時間: 2005-11-14
文章: 191


第 11 樓

發表發表於: 星期六 八月 14, 2010 9:09 pm    文章主題: 引言回覆

xzg 寫到:
區榮熾 寫到:
xzg 寫到:
在弱弱的問下,Select * From DBF into Table XX 的xx須必是物理存在的表么?可以用有結構的臨時表部,謝謝

答案就在 <請再仔細的看6樓所寫的>..........眼看不清,就對號入座吧!

into xx (語法錯誤)(因為VFP不清楚你要存到那裡?)
into table xx (要寫入 ????)
into Cursor xx (要寫入 ????)


???? 代表的意思應該清楚了吧!


額,是我沒有表達清楚,區大大說的我已經清楚了,我想問的是在load我建立了個臨時表A,在後面的程序我想把其他表的內容複製到表A中,用select......into table A,這種方法是不是不可行,也就是into table必須是物理存在的表,into cursor是在select后新建的臨時表?


好像你對 Table 及 Cursor 這二種的意義沒有很明白的,但又不去深研究,而一直在原地轉轉的........結果又顯示出你的不懂而叫懂,好,請你再仔細品味一下下述....
Table 的用途是一般運用的資料表(含在資料庫內或獨立的資料表,存儲需要常用的資料,可更新,增加,刪除......等的操作)
Cursor 的用途是作中途運作而無需留存在磁碟機上,程序結束 Cursor 就結束,來去都無影,因是用記憶體跑的.(因是唯讀,故不能與 Table 作相同的資料更新等的動作, 但 Create Cursor 不含在內).
你看到這,希望能分別出 into Table 或 into Cursor 的正確選擇了罷!
VFP 的強項就是資料庫,慢慢的摸索吧! .........很吸引人的啊!
回頂端
檢視會員個人資料 發送私人訊息
chilin



註冊時間: 2003-10-01
文章: 79
來自: Taipei,Taiwan

第 12 樓

發表發表於: 星期日 八月 15, 2010 9:54 pm    文章主題: 引言回覆

VFP8.0以上
假設實體資料表MYDBF,欄位與資料如下
FLD1 FLD2 FLD3
A    B    C
A    A    A
B    C    A
C    D    B
.....
.....

SELECT 0
CREATE CURSOR T1 (FLD1 C(1),FLD2 C(1),FLD3 C(1)) &&暫存資料表T1
SELECT 0
CREATE CURSOR T2 (FLD3 C(1),FLD2 C(1),FLD1 C(1)) &&暫存資料表T2


若要將實體資料表MYDBF欄位FLD1="A"的資料複製到暫存表T1,T2
方法1:
SELECT T1
APPEND FROM MYDBF FOR FLD1=[A]
SELECT T2
APPEND FROM MYDBF FOR FLD1=[A]

方法2:
TC=[C:\TEMP\]+"_"+RIGHT(SYS(2015),7)
SELECT FLD1,FLD2,FLD3 FROM MYDBF WHERE FLD1=[A] INTO CURSOR TC
COPY TO (TC)
SELECT T1
APPEND FROM (TC)
SELECT T2
APPEND FROM (TC)
ERASE(TC+[.*])
USE IN TC
USE IN MYDBF

方法3:
SELECT FLD1,FLD2,FLD3 FROM MYDBF WHERE FLD1=[A] INTO ARRAY T_ARY
USE IN MYDBF
SELECT T1
IF TYPE([T_ARY])#[U]
  APPEND FROM ARRAY T_ARY
  RELEASE T_ARY
ENDIF

SELECT FLD3,FLD2,FLD1 FROM MYDBF WHERE FLD1=[A] INTO ARRAY T_ARY
USE IN MYDBF
SELECT T2
IF TYPE([T_ARY])#[U]
  APPEND FROM ARRAY T_ARY
  RELEASE T_ARY
ENDIF
注意:欄位順序必需一樣,欄位數量不一定要一樣

方法4:
直接使用SQL語法
INSERT INTO T1 SELECT FLD1,FLD2,FLD3 FROM MYDBF WHERE FLD1=[A]
INSERT INTO T2 SELECT FLD3,FLD2,FLD1 FROM MYDBF WHERE FLD1=[A]
USE IN MYDBF
注意:欄位順序及數量必需一樣



個人比較建議用方法4

_________________
一個喜愛Latte的男人
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
xzg



註冊時間: 2010-07-26
文章: 29
來自: 深圳

第 13 樓

發表發表於: 星期一 八月 16, 2010 9:02 am    文章主題: 引言回覆

學習了,謝謝各位大大
_________________
學習,學習,再學習
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作