<< CSVからKMLに変換 | top | MapServerからODBCでSQLiteに接続する >>

VB(.NET)でSQLiteへ接続

AIR(Adobe Integrated Runtime)Google Gears でも、使われているSQLite ですが、MapServerはOGR経由でSQLiteに接続できるようで、たくぼさんのページに情報があります。

FWToolsに含まれている ogr2ogrでも、ずいぶん前からサポートしているようです。

バグな明保野では、VB(.NET)のWindows Forms で、MapScript(C#)を使い倒そうという主旨で情報をのっけていますが、まぁ、ニッチな分野なので、世のニーズは特に高くはありません。

デスクトップアプリケーションとして、汎用GIS並みの機能を作りこみ、さまざまな情報を地図に表示するのが目的であるので、雑多なポイント情報や、SQLを使って頻繁に検索をかけたい場合は、RDBを使いたくなります。

当然、PostgreSQL+PostGISを使えよ、というのが大方のアドバイスになるのですが、デスクトップアプリケーションは、大勢の人に使われることと、「オフライン」でも使えるようにというのが、条件であるため、PostgreSQLを採用は躊躇してしまいます。

で、SQLiteを使おうと思って、自分用のメモとして、やったことを挙げておきます。
■ODBCで接続
・SQLite のODBCドライバー → http://www.ch-werner.de/sqliteodbc/



 □VB(.NET)で接続 (リストビューに表示、リストビューで選択すると指定したカラムが返される)
'SQLiteへの検索 (建物CSVを読込み、データセットにセットして、SQLで検索をかける)
Private Sub odbcSQLite()
  'CSVファイルのあるフォルダ
   Dim csvDir As String = Application.StartupPath

  'DataSetに格納する
   Dim ds As New DataSet
 
  '接続文字列
   Dim conString As String = _
    "Driver={SQLite3 ODBC Driver}; Database=" _
    + csvDir + "¥test.db"
   Dim con As System.Data.Odbc.OdbcConnection
   con = New System.Data.Odbc.OdbcConnection(conString)
 
   Dim commText As String = "SELECT * FROM [test]"
 
   Dim da As New System.Data.Odbc.OdbcDataAdapter(commText, con)
 
  da.Fill(ds, "slt")
  ds.Tables("slt").PrimaryKey = New DataColumn() {ds.Tables("slt").Columns("建物No")}
 
  Me.ListBox1.DataSource = ds.Tables("slt")
  Me.ListBox1.DisplayMember = "建物名称"
  Me.ListBox1.ValueMember = "建物No"
 
  ds = Nothing
  da = Nothing
 
  con.Close()
End Sub

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged

Dim drv As System.Data.DataRowView
drv = Me.ListBox1.SelectedItem
If drv Is Nothing Then Exit Sub

Me.Label1.Text = drv.Row("建物No")
End Sub



■ADO.NETで接続
・SQLite を.NET で使うためのラッパー → ADO.NET 2.0 Provider for SQLite

※お世話になったページでは、似たようなもので別のプロジェクトである、ADO.NET Data Provider for SQLite
が紹介されていたが、こちらは更新が途絶えているようなので、上記のものを使ってみた。


■SQLite Database Browser
・カラム名に日本語があると(使うなって?)そこだけ文字化けしますが、データのほうは日本語OKです。
→ http://sqlitebrowser.sourceforge.net/


※こっちのほうが便利かも。カラム名の日本語も化けない。
■SQLite Manager(FireFoxのアドオン)
http://codezine.jp/a/article/aid/1840.aspx

★お世話になったページ★

SQLiteを扱ってみた記録
bugna | SQLite | 11:03 | comments(0) | trackbacks(0) | - | - |
Comment









Trackback
URL:

09
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
--
>>
<<
--