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

在程式中CREATE SQL VIEW無法更新TABLE

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



註冊時間: 2008-10-13
文章: 473
來自: 台南市

第 1 樓

發表發表於: 星期五 五月 01, 2009 1:40 am    文章主題: 在程式中CREATE SQL VIEW無法更新TABLE 引言回覆

小弟不才, 異想天開想做一個動態的 sql view
於是寫了下面的程式, 但是發現, 在程式中根本無法更新 table
但是如果直接開啟專案的 BROWSE sql view 卻可以自動更新 table
已經三天了, 仍找不出為何在程式中無法自動更新
請各位先進指導一下, 問題出在哪??或是可以給予指導該如何正確的利用程式產生 SQL VIEW 而不用預先在 DATABASE 裡設計 SQL VIEW



SET DELETED ON
SET SAFETY OFF
SET MULTILOCKS ON
SET DEFAULT TO D:\VFP

CLOSE TABLES ALL
CLOSE DATABASES ALL
OPEN DATABASE MAIN
CREATE SQL VIEW COMPUSER_VIEW AS SELECT * FROM COMPUSER ORDER BY USER_ID

USE compuser_view
THISVIEW = "COMPUSER_VIEW"

**** 本段是利用 SQL VIEW 取出的設定
DBSetProp(ThisView,"View","SendUpdates",.T.)
DBSetProp(ThisView,"View","BatchUpdateCount",1)
DBSetProp(ThisView,"View","CompareMemo",.T.)
DBSetProp(ThisView,"View","FetchAsNeeded",.F.)
DBSetProp(ThisView,"View","FetchMemo",.T.)
DBSetProp(ThisView,"View","FetchSize",100)
DBSetProp(ThisView,"View","MaxRecords",-1)
DBSetProp(ThisView,"View","Prepared",.F.)
DBSetProp(ThisView,"View","UpdateType",1)
DBSetProp(ThisView,"View","UseMemoSize",255)
DBSetProp(ThisView,"View","Tables","main!compuser")
DBSetProp(ThisView,"View","WhereType",3)

DBSetProp(ThisView+".user_id","Field","DataType","C(4)")
DBSetProp(ThisView+".user_id","Field","UpdateName","main!compuser.user_id")
DBSetProp(ThisView+".user_id","Field","KeyField",.T.)
DBSetProp(ThisView+".user_id","Field","Updatable",.T.)

CLOSE TABLES ALL

USE compuser_view

lSuccess=CURSORSETPROP("Buffering", 5, "compuser_VIEW")
MESSAGEBOX(IIF(lSuccess, "Buffering 成功", "Buffering 失敗"),0,1500)

lSuccess=CURSORSETPROP("SendUpdates", .T.)
MESSAGEBOX(IIF(lSuccess, "SendUpdates 成功", "SendUpdates 失敗"),0,1500)

lSuccess=CURSORSETPROP("UpdateType", 1)
MESSAGEBOX(IIF(lSuccess, "UpdateType 成功", "UpdateType 失敗"),0,1500)

BROWSE

AX = TABLEUPDATE(1,.F.)
IF AX
MESSAGEBOX("成功", 0)
ELSE
MESSAGEBOX("失敗", 0)
TABLEREVERT(.T., "COMPUSER_VIEW")
ENDIF

CLOSE TABLE ALL
DELETE VIEW COMPUSER_VIEW
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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