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 |
|