sql ce. 註冊 rda regsvr32 iis 設定 新增虛擬目錄 iis 設定 輸入虛擬目錄名稱

30
SQL CE

Upload: amy-morgan

Post on 20-Jan-2016

230 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

SQL CE

Page 2: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

註冊 RDA REGSVR32

Page 3: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

IIS 設定 新增虛擬目錄

Page 4: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

IIS 設定 輸入虛擬目錄名稱

Page 5: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

IIS 設定 輸入虛擬目錄位置

Page 6: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

IIS 設定 輸入虛擬目錄權限 ( 執行一定要勾 )

Page 7: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

IIS 設定 設定完成

Page 8: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

連線 SQL Server

reference installation

Page 9: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

連線 SQL Server

InitDB

Page 10: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

圖片顯示

顯示圖片Private Sub Form_Activate()

Dim strpath As Stringstrpath = App.PathIf strpath = "\" Then strpath = ""End If

PictureBox1.Picture = strpath & "\a1.bmp"End Sub

Page 11: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

宣告連線變數所有變數宣告在 Module 中Const DBFileSpec = "\My Documents\" ' PDA 上 SQL 資料庫位置所在Const DBName = “employee.sdf” ‘ PDA 上 SQL 資料庫名稱' 連接 server 上的 SQL ServerConst strRemoteProvider = "Provider=sqloledb;Initial Catalog=Northwind;" Const SQLEProvider = "Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0; data source="' ------------------------------------------------------------------------------------Dim strRemoteSQLServerName As String 'SQL 主機名稱Dim strRemoteSQLServerUID As String 'SQL 帳號Dim strRemoteSQLServerPwd As String 'SQL 密碼Dim strInternetURL As String 'RDA.DLL 所在位置Dim strRemoteConnect As String ‘ 連接 SQL SERVER 連線參數Dim strDBFileName As String ‘pda 上的資料庫Dim cnADO As ADOCE.Connection ‘ 操作 pda 上的 sdf 資料庫的 connection

Page 12: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

設定連線參數值設定連接參數Private Sub InitDB()

' 聯結 PDA 上的 SQL 資料庫,判斷是否要覆蓋或繼續使用strRemoteSQLServerName = txtRemoteHost.Text ' SQL ServerstrRemoteSQLServerUID = txtUserID.Text ' SQL Server 帳號strRemoteSQLServerPwd = txtUserPasswd.Text ' SQL Server 密碼strInternetURL = txtsaURL.Text 'RDA.DLL 所在位置' 連接資料庫strRemoteConnect = strRemoteProvider & "Data Source=" & strRemoteSQLServerName & ";UID=" & strRemoteSQLServerUID & ";password=" & strRemoteSQLServerPwdMsgBox “SQL Server 資料庫初始成功,可以開始進行上傳或下載資料的動作!“download_upload.Show

End Sub

Page 13: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

連線 SQL Serverdownload_upload

COMMAND1

command2

Page 14: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

從 SQL Server 下載資料 IDim ceRDA As SSCE.RemoteDataAccess ‘ 全域變數Private Sub Command1_Click()

' 下載資料Dim CreateDBFlag As BooleanDim intTemp As Integer'--------------------------------------------------------------------------‘ 判斷是否要在 PDA 重新產生 SQL 檔案CreateDBFlag = True'--------------------------------------------------------------------------strDBFileName = DBFileSpec & DBName ' PDA 上資料庫所在位置與路徑If DBExists(strDBFileName) = True Then ' 檢查 PDA 上的資料庫是否存在 intTemp = MsgBox(" 要覆寫資料庫嗎? " & strDBFileName & " ?", vbYesNoCancel, " 資料庫已經存在 ") If intTemp = vbYes Then ' 確定覆寫 FileSystem1.Kill strDBFileName ' 刪除目前資料 Else CreateDBFlag = False End IfEnd If

Page 15: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

從 SQL Server 下載資料 II‘ 接前頁'----------------------------------------------------------------------------If CreateDBFlag = True Then CreateDB ' 在 PDA 上建立 SQL 資料庫 download_from_sql ' 開始下載資料 ****************Else Exit SubEnd If

End Sub

Page 16: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

CreateDB

' 在 PDA 上建立 SQL 資料庫Private Sub CreateDB()

Dim cat As ADOXCE.Catalog

Set cat = CreateObject("ADOXCE.Catalog.3.1") ' 在 PDA 上建立 SQL 資料庫cat.Create (SQLEProvider & strDBFileName) Set cat = Nothing

End Sub

Page 17: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

download_from_sql - I

' 下載資料 ************************Sub download_from_sql()

Dim sr As String

ShowHourGlass ' 顯示漏斗 If connOpen=true then ' 開啟 PDA 上的 SQL 資料庫'---------------------------------------------------- If TableExists(cnADO, “employees") = True Then 'cnADO 代表開啟的 SQL 資料庫的 employees 資料表 cnADO.Execute ("drop table employees") ' 刪除資料表 employees End If

Page 18: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

download_from_sql - II'----------------------------------------------------connClose ' 關閉 SQL 資料庫 '------------------------------------------------------------' 連結遠端 SQL SERVER Set ceRDA = CreateObject("SSCE.RemoteDataAccess.2.0") ceRDA.LocalConnectionString = SQLEProvider & strDBFileName ceRDA.InternetURL = strInternetURL ' strRemoteConnect 代表 SQL Server 資料庫 ‘ Pull 代表將資料由 SQL Serve 取出放入 PDA 上的 SQL 資料庫中 ceRDA.Pull “employees", "SELECT * FROM employees", strRemoteConnect, TRACKINGON

Page 19: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

download_from_sql - III

If ceRDA.ErrorRecords.Count > 0 Then ShowErrors ceRDA.ErrorRecords ' 顯示錯誤訊息 Else MsgBox " 資料下載成功 !" End If Set ceRDA = NothingEnd if ShowArrow ‘ 恢復游標End Sub

Page 20: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

connOpen' 開啟 PDA 上的 SQL 資料庫 GPS.SDF 檔案Function connOpen() As Boolean

connOpen = False

Set cnADO = CreateObject(“ADOCE.Connection.3.1”) ‘module 中宣告cnADO.Open (SQLEProvider & strDBFileName)If cnADO.Errors.Count = 0 Then connOpen = True ' 沒有錯誤代表開啟成功Else MsgBox "PDA 上的 SQL 資料庫開啟失敗 "End If

End Function

Page 21: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

connClose

' 關閉 PDA 上的 SQL 資料庫Sub connClose()

On Error Resume NextcnADO.Close

End Sub

Page 22: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

TableExistsPrivate Function TableExists(paramcnADO As ADOCE.Connection, paramTableName As String) As Boolean

Dim catTable As ADOXCE.TableDim cat As ADOXCE.Catalog TableExists = FalseSet cat = CreateObject("ADOXCE.Catalog.3.1")cat.ActiveConnection = paramcnADO

For Each catTable In cat.Tables If InStr(1, catTable.Name, paramTableName) <> 0 Then TableExists = TrueNext Set catTable = NothingSet cat = Nothing

End Function

Page 23: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

ShowHourGlass & ShowArrow

' 改變游標變成漏斗Public Sub ShowHourGlass() Screen.MousePointer = 11End Sub' 回覆游標Public Sub ShowArrow() Screen.MousePointer = 1End Sub

Page 24: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

Summary透過 RDA 連接 SQL ServerCERDA

Set ceRDA = CreateObject("SSCE.RemoteDataAccess.2.0")ceRDA.LocalConnectionString = SQLEProvider ceRDA.InternetURL = RDA 的 URL

取值 / 回傳值ceRDA.Pull "goods", "SELECT * FROM goods", strRemoteConnect, TRACKINGONceRDA.Push "goods", strRemoteConnect

連接遠端 SQL Server 參數strRemoteProvider ="Provider=sqloledb;Initial Catalog=wealth;"strRemoteConnect = strRemoteProvider & "Data Source=" & strRemoteSQLServerName & ";UID=" & strRemoteSQLServerUID & ";password=" & strRemoteSQLServerPwd

操作 PDA 本機 SQL Server CEADOCE

SQLEProvider ="Provider=Microsoft.SQLSERVER.OLEDB.CE.2.0; data source=a.sdf"Set cnADO = CreateObject("ADOCE.Connection.3.1")cnADO.Open (SQLEProvider)

Page 25: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

顯示資料Dim ssql As String

connOpen ' 開啟 PDA SQL 資料庫

ssql = "select * from student"Set rs = CreateObject("ADOCE.Recordset.3.1")rs.Open ssql, cnADO, adOpenDynamic, adLockPessimistic

rs.MoveFirstLabel1.Caption = rs("name")Label2.Caption = rs("age")grid

Private Sub Form_OKClick()connCloseMe.HideEnd Sub

Page 26: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

顯示資料Sub grid()Dim i, j As Integer

GridCtrl1.Rows = totalcount + 1 GridCtrl1.Cols = 2 GridCtrl1.Row = 0 GridCtrl1.Col = 0 GridCtrl1.Text = “ 編號 " GridCtrl1.Col = 1 GridCtrl1.Text = " 名稱 " rs.movefirst For i = 1 To totalcount GridCtrl1.Row = i For j = 0 To 1 GridCtrl1.Col = j Select Case j Case 0: GridCtrl1.Text = rs("goods_code") Case 1: GridCtrl1.Text = rs("goods_name") End Select Next rs.MoveNext NextEnd Sub

Page 27: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

更改資料Dim ssql As String

Set rs1 = CreateObject("ADOCE.Recordset.3.1")rs1.Open "update student set name = '" & Text1.Text & "' where id ='" & rs("id") & "'", cnADO, adOpenDynamic, adLockPessimistic

Set rs1 = NothingIf rs.State = 1 Then rs.Closessql = "select * from student"rs.Open ssql, cnADO, adOpenDynamic, adLockPessimistic

grid

Page 28: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

新增資料-資料庫欄位屬性修正

Page 29: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

新增資料

Dim ssql As String

Set rs1 = CreateObject("ADOCE.Recordset.3.1")rs1.Open "insert into student (name,age) values ('" & Text1.Text & "',12)", cnADO, adOpenDynamic, adLockPessimistic

Set rs1 = NothingIf rs.State = 1 Then rs.Closessql = "select * from student"rs.Open ssql, cnADO, adOpenDynamic, adLockPessimistic

grid

Page 30: SQL CE. 註冊 RDA REGSVR32 IIS 設定 新增虛擬目錄 IIS 設定 輸入虛擬目錄名稱

上傳資料' 上傳資料到 ServerPrivate Sub Command2_Click()

connCloseShowHourGlass ' 顯示漏斗strDBFilename = DBFileLoc & DBName ' PDA 上資料庫所在位置與路徑 Set ceRDA = CreateObject("SSCE.RemoteDataAccess.2.0") ceRDA.LocalConnectionString = SQLEProvider & strDBFilename ceRDA.InternetURL = strInternetURL' 將資料回存到 SQL Server 中ceRDA.Push "student", strRemoteConnect

If ceRDA.ErrorRecords.Count > 0 Then ShowErrors ceRDA.ErrorRecords ' 顯示錯誤訊息Else MsgBox " 資料上傳成功 !"End IfSet ceRDA = NothingShowArrow ' 恢復游標

End Sub