foxpro如何使用ADO從SQL Server中取出的資料並放到Grid中

來源:互聯網
上載者:User

從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")

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.