2005/09/13 | VB.net 2005 への期待 | |
---|
| VB.net 2005 が、シンプルさを追求したというけれど、果たしてどれだけシンプルになってくるのかな。
開発環境の機能としてデーターベース接続するやつは、猥雑になるだけなので、いっそのことやめて欲しい。 そんなことよりも、どれだけ簡単なコードで、データーベースがオープンできるかに気を使って欲しい。
VB6の頃は、ADOにて、
Dim RS As ADODB.Recordset Set RS = New ADODB.Recordset: RS.CursorLocation = adUseClient RS.Open "select * from [TABLENAME]", "Provider=Microsoft.Jet.OLEDB.4.0; _ Data Source=" & DATABASEPATH & ";", adOpenDynamic, adLockOptimistic
とすれば開けた。
ADO.NETでは、
Private Function OleMdbOpen(ByVal DBname As String) As Data.OleDb.OleDbConnection Dim tempCn As Data.OleDb.OleDbConnection tempCn = New Data.OleDb.OleDbConnection _ ("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & DBname) Return tempCn tempCn = Nothing End Function
Private Function OleDAOpen(ByVal SQLString As String, _ ByVal ConnStr As Data.OleDb.OleDbConnection) As Data.OleDb.OleDbDataAdapter Dim tempDA As Data.OleDb.OleDbDataAdapter tempDA = New Data.OleDb.OleDbDataAdapter(New Data.OleDb.OleDbCommand _ (SQLString, ConnStr)) Return tempDA ConnStr = Nothing tempDA = Nothing End Function
上の2つの関数を実装しておけば以下の手続きでレコードセットが返る。
Dim Cn As New Data.OleDb.OleDbConnection Dim Da As New Data.OleDb.OleDbDataAdapter Dim Ds As New Data.DataSet Cn = OleMdbOpen(DATABASEPATH) Da = OleDAOpen("Select * from [TableName]", Cn) Da.Fill(Ds, "TableName")
となる。非常に面倒くさい。 例えば、VB6だったら例えば研究室のスタッフが片手間に学べたけれど、DOTNETはそう簡単にはいかない。 DOTNET哲学は確かに面白いのだけれど、マニアックに走ってユーザーが減った見本のようになっており、 Microsoft は大失敗して、本当は問題にならない他の言語に追随の余地を与えてしまっている。 エンドユーザー向けOSの独占と、まあまあいい具合のサーバー向けOSを持っているのに、 その地の利を生かせないというのはかなりもったいない。VB.net 2005 期待しています。 |
|