zoukankan      html  css  js  c++  java
  • VFP 用 SPT 来发布一条 SELECT 到一个新的 SQL Server 表

    为了发布一条 SQL SELECT 语句来创建一个新的 SQL Server 表,  SQL Server 数据库的 select into/bulkcopy 选项必须是可用的. 在默认情况下, 对于新创建的 SQL Server 数据库, select into/bulkcopy 选项是不可用的. select into/bulkcopy 选项可以用 sp_dboption 储存过程来修改. 修改 select into/bulkcopy 选项状态的语法是:

    sp_dboption 'pubs','select into/bulkcopy','true' 
    -或者- 
    sp_dboption 'pubs','select into/bulkcopy','false'

    以下代码片断用 SQL Pass Through 来选择 Pubs 中的 Authors 表中的全部记录到一个名为 Mytable 的在 Pubs 数据库中的新表中:

    *!* 注意请修改以下代码中的 SERVER= 节以反映你要连接的 SQL Server.
    gnConnHandle=SQLSTRINGCONN('DRIVER={SQL Server};SERVER=MY_SERVER;DATABASE=MASTER;' + ;
       'UID=sa;PWD=')
    IF gnConnHandle>0
       *!* 查询来确定是否 SELECT INTO 并且 Fast Bulk Copy 是被允许的
       sqlcommand="sp_dboption 'pubs','select into/bulkcopy'"
       =sqlexec(gnConnHandle,sqlcommand,'bulkcopy')
       sqlcommand="IF EXISTS (SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE " + ;
          "table_name = 'mytable') " +CHR(13) + CHR(10) + "DROP TABLE mytable"
       =sqlexec(gnConnHandle,sqlcommand)
       IF UPPER(ALLTRIM(BULKCOPY.CURRENTSETTING))="OFF"
          *!* 在默认情况下 SELECT INTO 和 Fast Bulk Copy 是不允许的.
          *!* 在选定数据库中许可 SELECT INTO 和 Fast Bulk Copy
          sqlcommand="EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'true'"
          =sqlexec(gnConnHandle,sqlcommand)
       ENDIF
       *!* 使用 PUBS 数据库
       sqlcommand="USE pubs"
       =sqlexec(gnConnHandle,sqlcommand)
       *!* 发布一条 SQL Select 命令并 SELECT INTO 一个 SQL Server 上的新表
       sqlcommand="SELECT * INTO mytable" + CHR(13)+CHR(10) + ;
          "FROM authors"
       =sqlexec(gnConnHandle,sqlcommand)
       *!* 使用 MASTER 数据库
       sqlcommand="USE master"
       =sqlexec(gnConnHandle,sqlcommand)
       IF UPPER(ALLTRIM(BULKCOPY.CURRENTSETTING))="OFF"
          *!* 如果 SELECT INTO 和 Fast Bulk Copy 原来是被禁止的,
          *!* 重置选定数据库的 SELECT INTO 和 Fast Bulk Copy 到它们的原始状态
          sqlcommand="EXEC sp_dboption 'pubs', 'select into/bulkcopy', 'false'"
          =sqlexec(gnConnHandle,sqlcommand)
       ENDIF
       *!* Select from 刚创建的表.
       sqlcommand="select * from pubs..mytable"
       =sqlexec(gnConnHandle,sqlcommand,'mycursor')
       =sqldisconn(gnConnHandle)
       SELECT mycursor
       BROWSE NOWAIT
    ENDIF 

  • 相关阅读:
    【Flutter学习】之绘画实例(二)
    【Flutter学习】之绘画实例(一)
    【Flutter学习】之动画实现原理浅析(三)
    【Flutter学习】之动画实现原理浅析(二)
    NopCommerce支持多种类型的数据库
    NopCommerce 多数据库方案
    开发程序需要注意的点
    基于SVN的项目管理——集中与分散
    JS代码优化小技巧
    开发日记:中控PUSH协议
  • 原文地址:https://www.cnblogs.com/hnllhq/p/12311332.html
Copyright © 2011-2022 走看看