sql ce. 註冊 rda regsvr32 iis 設定 新增虛擬目錄 iis 設定 輸入虛擬目錄名稱
TRANSCRIPT
SQL CE
註冊 RDA REGSVR32
IIS 設定 新增虛擬目錄
IIS 設定 輸入虛擬目錄名稱
IIS 設定 輸入虛擬目錄位置
IIS 設定 輸入虛擬目錄權限 ( 執行一定要勾 )
IIS 設定 設定完成
連線 SQL Server
reference installation
連線 SQL Server
InitDB
圖片顯示
顯示圖片Private Sub Form_Activate()
Dim strpath As Stringstrpath = App.PathIf strpath = "\" Then strpath = ""End If
PictureBox1.Picture = strpath & "\a1.bmp"End Sub
宣告連線變數所有變數宣告在 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
設定連線參數值設定連接參數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
連線 SQL Serverdownload_upload
COMMAND1
command2
從 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
從 SQL Server 下載資料 II‘ 接前頁'----------------------------------------------------------------------------If CreateDBFlag = True Then CreateDB ' 在 PDA 上建立 SQL 資料庫 download_from_sql ' 開始下載資料 ****************Else Exit SubEnd If
End Sub
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
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
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
download_from_sql - III
If ceRDA.ErrorRecords.Count > 0 Then ShowErrors ceRDA.ErrorRecords ' 顯示錯誤訊息 Else MsgBox " 資料下載成功 !" End If Set ceRDA = NothingEnd if ShowArrow ‘ 恢復游標End Sub
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
connClose
' 關閉 PDA 上的 SQL 資料庫Sub connClose()
On Error Resume NextcnADO.Close
End Sub
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
ShowHourGlass & ShowArrow
' 改變游標變成漏斗Public Sub ShowHourGlass() Screen.MousePointer = 11End Sub' 回覆游標Public Sub ShowArrow() Screen.MousePointer = 1End Sub
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)
顯示資料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
顯示資料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
更改資料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
新增資料-資料庫欄位屬性修正
新增資料
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
上傳資料' 上傳資料到 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