- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VFPSQL-动态创建远程视图
VFP+SQL-动态创建远程视图
先看源程序
LPARAMETERS cSQLDatabaseName,cConnectionName,cSQLTableName,cViewName,cKey,cCondition,cOrder
*cSQLDatabaseName 后端数据库名
* cConnectionName 连接名
* cSQLTableName 后端表名
* cViewName 视图名
* cKey 主键
* cCondition 视图条件
* cOrder 排序
*LOCAL nConnectHandle 数据库连接句柄
LOCAL cFieldName 字段名
***********************************************************************
* 函数名:CreateView
* 作用:* 创建远程视图函数
* 参数说明:
* cOrder---排序方式
* nHandle---指定的数据库的连接句柄
* cSQLDatabaseName---SQL Server数据库名
* cConnName---连接名
* cSQLTableName---SQL Server表名
* cViewName---要创建的远程视图名
* cKey---主键
* cCondition---条件
* 调用格式:
* =CreateView(\数据库名\,\连接名\,\后端表名\,\视图名\,\主键名\,\条件\,\排序\)
* 第一步、创建视图
* 如果是带条件的视图
IF NOT EMPTY(cCondition)
CREATE SQL VIEW cViewName ;
CONNECTION cConnectionName SHARE ;
AS SELECT * FROM cSQLTableName WHERE cCondition ;
ORDER BY cOrder
ELSE 如果是不带条件的视图
CREATE SQL VIEW cViewName ;
CONNECTION cConnectionName SHARE ;
AS SELECT * FROM cSQLTableName ;
ORDER BY cOrder
ENDIF
* 第二步、设置视图可更新
* 1).Tables 属性
DBSETPROP(\cViewName\,\View\,\Tables\,\cSQLTableName\)
* 2).KeyField 属性(将字段cKey设定成关键字栏)
DBSETPROP(\cViewName..cKey\,\Field\,\KeyField\,.T.)
* 3.UpdateName 属性
DBSETPROP(\cViewName..cKey\,\Field\,\UpdateName\,\cSQLTableName..cKey\)
* 4)Updatable 属性(指定可更新的字段)
* 取得SQL Server表“cSQLTableName”结构,存放在表“表结构”中
*nConnectHandle=SQLSTRINGCONNECT(\DSN=gcDSN;UID=gcUID;PWD=gcPWD;DATABASE=cSQLDatabaseName\)
* 参见《Visual FoxPro 6.X 中文版程序设计》p.431
* 11.12 取得后端字段的相关信息
cCursorName=\C\+SYS(3)
N=SQLCOLUMNS(gnHandle,cSQLTableName,FOXPRO,cCursorName)
* n=SQLCOLUMNS(nConnectHandle,文档,FOXPRO,基表结构)
* n=0 SQLCOLUMNS还在执行中
* n=1 SQLCOLUMNS执行成功
* n=-1 发生连接层次上的错误
* n=-2 发生系统环境上的错误
SELECT(cCursorName)
SCAN
cFieldName=ALLTRIM(cCursorName..Field_name)
DBSETPROP(\cViewName..cFieldName\,\Field\,\Updatable\,.T.) 可更新
DO CASE
CASE Field_type=\C\ 如果是Char型字段,默认值是\\
DBSETPROP(\cViewName..cFieldName\,\Field\,\Defaultvalue\,\ \) 默认值
CASE cCursorName..Field_type=\N\ 如果是Number型字段,默认值是0
DBSETPROP(\cViewNa
文档评论(0)