zoukankan      html  css  js  c++  java
  • foxpro如何使用ADO从SQL Server中取出的数据并放到Grid中

    从Ado中取出数据,返回时是一个RecordSet这里不能直接将RecordSet绑定到Grid中,因
    为Grid,RecordSource不接收此种类型的数据结构,会产生个错误
    正确的方法是做入一个游标中,然后将游标中绑定到Grid中

    注意在使用从Procedure中返回的游标最好不要直接绑定到Grid
    不然的话,数据会一闪而过,现在电脑运行速度快,是看不到的,测试的办法是在绑定后,加上一个MessageBox

    比较简单的办法是使用一个全局变量来存放游标


    写在按钮的ClickProcedure中的内容
    SET PROCEDURE TO "E:\FoxProProject\sqlconnection.prg"
    mycon=sqlConnection ("Provider=SQLOLEDB.1;Password=cxy;Persist Security Info=True;User ID=sa;Initial Catalog=bussetup;Data Source=.")


    &&构造数据库命令
    comString="select top 10000 * from tables "
    PUBLIC mytable as CursorAdapter
    mytable= executeNonQuery(mycon,comString)

    &&MESSAGEBOX(mytable)
    &&MESSAGEBOX(mytable.Fields(0).Value)
    thisform.grid1.RecordSourceType=1
    thisform.grid1.RecordSource="Customers" 

    thisform.grid1.Refresh()
    thisform.Refresh()
    MESSAGEBOX("done")


    SqlConnection.Prg中的代码
     &&使用Ado的方式来连接Sql Server
    procedure SqlConnection
    PARAMETERS cString
          LOCAL oConn AS ADODB.Connection , oRs AS ADODB.RecordSet
          oConn=CREATEOBJECT("ADODB.Connection")
          oConn.Open(cString)    
          RETURN oConn
    End proc


    procedure ExecuteNonQuery
    PARAMETERS oConn ,comStr
    LOCAL oRs AS ADODB.RecordSet,;
       loCursor AS CURSORADAPTER
     oRs= oConn.Execute(comStr)
     
      loCursor = CREATEOBJECT('CursorAdapter')
      WITH loCursor
       .ALIAS          = 'Customers'
       .DATASOURCETYPE = 'ADO'
       llReturn = .CURSORFILL(.F., .F., 0, oRs)
    ENDWITH
     
    RETURN loCursor

     
    && RETURN oRs
     
     &&RETURN oRs.Fields(0).Value
    END proc


    如何将一个表绑定到Grid中
    SET PATH TO "E:\FoxProProject\data\"
    CLOSE DATABASES
    OPEN DATABASE gsdata
    USE gsdata!xl SHARED 
    browse
    thisform.grid1.RecordSourceType= 0
    thisform.grid1.RecordSource="xl"
    thisform.grid1.Refresh()
    thisform.Refresh()
    MESSAGEBOX("done")

  • 相关阅读:
    Element-Ui表单移除校验clearValidate和resetFields
    Vue组件之间传值(父子)
    最简单新手vuex案例(三、actions对象)
    最简单新手vuex案例(二、mutations对象)
    最简单新手vuex案例(一)
    vue如何把路由拆分多个文件
    Vue项目如何使用公共js方法呢?
    uva10815 by sixleaves
    uva12096 The SetStack Computer By sixleaves
    uva540 Team Queue by sixleaves
  • 原文地址:https://www.cnblogs.com/sunbingzibo/p/1238574.html
Copyright © 2011-2022 走看看