|
The sample code below shows how to connect, import a list of ODBC sources, open a database and select from a table. SqlLinkCE functions are in BOLD
Imports SqlLinkCe Imports System.runtime.InteropServices
Public Class frmTestSqlLinkCe Inherits System.Windows.Forms.Form Friend WithEvents MainMenu1 As System.Windows.Forms.MainMenu Private sqlLink As New GUI_SqlLinkCe Const LVM_SETCOLUMNWIDTH = &H101E
Declare Function SendMessage Lib "Coredll" Alias "SendMessageW" (ByVal hWnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
<DllImport("Coredll")> _ Private Function GetFocus() As Integer End Function
#Region " Windows Form Designer generated code " #End Region
Private Sub cmdConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdConnect.Click sqlLink.Remote_Port = txtPort.Text sqlLink.Host = txtHost.Text Dim Iret As Integer If Not sqlLink.Connect_To_Server() = 0 Then MsgBox(sqlLink.Error_Message) Else MsgBox("Connected to SqlLinkCE server") End If
End Sub
Private Sub cmdODBC_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdODBC.Click If sqlLink.Get_ODBC_List() = 0 Then Dim ict As Integer For ict = 1 To sqlLink.Connections.Count cmbBases.Items.Add(sqlLink.Connections(ict).ToString) Next End If End Sub
Private Sub cmdOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdOpen.Click sqlLink.Connection_String = "Provider=MSDASQL;DSN=" & cmbBases.Text sqlLink.Database_Password = "" sqlLink.Database_USer = "sa" If sqlLink.Open_Database <> 0 Then MsgBox(sqlLink.Error_Message) Else MsgBox("Opened OK!") End If
End Sub
Private Sub cmdExec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdExec.Click Dim bLVInit As Boolean Dim lvi As ListViewItem Dim Ict As Integer Dim lvh As ListView.ColumnHeaderCollection sqlLink.Sql = txtSql.Text sqlLink.Execute_Query()
lvRecords.BeginUpdate() While Not sqlLink.EOF If Not bLVInit Then lvRecords.Items.Clear() For Ict = lvRecords.Columns.Count To 1 Step -1 lvRecords.Columns.Remove(lvRecords.Columns(Ict - 1)) Next For Ict = 1 To sqlLink.Field_Name.Count lvRecords.Columns.Add(sqlLink.Field_Name(Ict).ToString, -2, HorizontalAlignment.Left) Next bLVInit = True End If For Ict = 1 To sqlLink.Field_Value.Count If Ict = 1 Then lvi = New ListViewItem lvi.Text = (sqlLink.Field_Value(1).ToString) Else lvi.SubItems.Add(sqlLink.Field_Value(Ict).ToString) End If
Next lvRecords.Items.Add(lvi) lvi = Nothing sqlLink.MoveNext() End While Autosize_Listview(lvRecords, lvRecords.Columns.Count) lvRecords.EndUpdate() End Sub
Public Sub Autosize_Listview(ByVal lv As ListView, ByVal Cols As Integer)
lv.Focus()
Dim WkCols As Integer If Cols = 0 Then WkCols = lv.Columns.Count - 1 Else WkCols = Cols - 1 End If Dim col2adjust As Integer For col2adjust = 0 To WkCols Call SendMessage(GetFocus(), _ LVM_SETCOLUMNWIDTH, _ col2adjust, _ -2) Next For col2adjust = WkCols + 1 To lv.Columns.Count - 1 lv.Columns(col2adjust).Width = 0 Next
End Sub
End Class
|