MSDE 2000 Release A
with Microsoft SQL Server 2000 Driver for JDBC
■MSDE 2000 Release A概要
MSDE(Microsoft SQL Server 2000 Desktop Engine)は、
SQL Serverの機能限定版で、無償で提供されるものです。
SQL Server + Java的な実験をする目的で、使ってみました。
■Microsoft SQL Server 2000 Driver for JDBC概要
Microsoftから提供されている、SQL Server向けJDBC Driverです。
こちらは、MSDEだけでなく、製品のSQL Serverにも使えます。
ちなみに、現在の最新バージョンはSP2となっており、
エラーメッセージが文字化けする不具合も解消しているようです。
■前提
OS: Windows XP SP1
JDK: Sun JDK 1.4
■ダウンロード
以下のURLより、それぞれダウンロードすることが可能です。
Books Onlineはドキュメントなので、SQL Serverについて詳しくない人は、
こちらも入手することをお勧めします。
■インストール
インストールする順番は、以下の通りです。
- Microsoft SQL Server 2000 Desktop Engine (MSDE 2000) Release A
- Microsoft SQL Server 2000 Driver for JDBC
- SQL Server 2000 Driver for JDBC Service Pack 2
まずは、MSDE本体をインストールします。
- JPN_MSDE2000A.exeを起動します。
- デフォルトインストール先フォルダ: C:\MSDERelA
- C:\MSDERelA\Setup.exeを以下の形式で実行します。
Setup.exe SAPWD="sa123" (sa123は任意)
ファイル名を指定して実行が簡単でよいでしょう。
以下のようなダイアログが表示される場合は、
パスワードが指定されていない可能性があります。
- セットアップが完了すると、デフォルトでC:\Program Files\Microsoft SQL Serverにインストールされます。
- C:\Program Files\Microsoft SQL Server\80\Tools\Binn\SVRNETCN.exeを起動します。
下図のように、TCP/IPを有効にします。
- SQL Serverのログオンモードを変更します。
デフォルトでは、Windows認証となっており、ユーザIDとパスワードによる認証を受け付けないためです。
以下のレジストリの値を書き換えます。LoginMode=1 → LoginMode=2
「\\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode」
参考URL) 宇宙仮面の C# プログラミング
- C:\Program Files\Microsoft SQL Server\80\Tools\Binn\sqlmangr.exeを起動します。
開始/再開のとなりの緑色の三角ボタンを押します。
図のように一時停止、停止ボタンが有効となれば起動しています。
- C:\Program Files\Microsoft SQL Server\80\Tools\Binn\osql.exeを、-Eオプション付きで起動します。
1>というプロンプトが表示されれば、ログイン完了です。
1>select * from sysobjects
2>go
で何か表示されれば、正常に動作しています。
参考) ログオンモードを変更していれば、osql -U sa -P sa123でもログインできます。
次に、JDBCドライバをインストールします。
- setup.exeを起動し、インストーラの指示にしたがって操作します。
- デフォルトインストールフォルダ: C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC
- setupJPN.exe(SP2)を起動し、インストーラの指示にしたがって操作します。
■JDBCでの接続
- 以下のようなプログラムを書きます。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Test
{
public static void main(String[] args) throws Exception
{
Connection con = null;
Statement stmt = null;
ResultSet rs = null;
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433", "sa", "sa123");
stmt = con.createStatement();
rs = stmt.executeQuery("select * from sysobjects");
while(rs.next())
{
System.out.println(rs.getString(1));
}
}
catch(SQLException e)
{
e.printStackTrace();
throw e;
}
finally
{
if(rs != null)
{
rs.close();
}
if(stmt != null)
{
stmt.close();
}
if(rs != null)
{
rs.close();
}
}
}
}
- C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\libにある、
msbase.jar / mssqlserver.jar / msutil.jarを全てクラスパスに通し、
上記プログラムを実行します。
何か表示されれば接続成功です。
■補足
・「ユーザー 'sa' のログインに失敗しました。理由 : SQL Server の信頼関係接続に関連付けられていません。」が表示される。
LoginModeの変更が行われていないかも知れません。インストールの手順6を見直してみてください。
・「SelectMethod=cursor」がないとうまく接続できない?
私の環境では、なくても問題なくつながりました。
SP2が出る以前の話か、また別の環境での話しなのかも知れません。