2017/05/05

ODBCの設定に関する雑記

家のマシンでデータベースにアクセスするsapxサイトが作りたかったので、
ODBCの設定をしてみたんだけどかなり最初っから詰まったので、まとめておきます。

併せてADO.netを使用しての情報なんかもまとめてみたいと思います。

一回使うとかなり楽ちんでかなり楽しいよ!

というか・・・、そもそもODBCってなによ?
参考:IT用語辞典
ODBCとは、アプリケーションソフトがデータベース管理システム(DBMS)などに接続し、データの取得や書き込み、操作などを行う方法の標準を定めたもの。Microsoft社が制定したもので、主に同社のWindowsで動作するデータベース関連ソフトウェアで用いられる。


うーん、わかりにくいですね。
「アクセス対象のデータベースが、どういうものでも統一規格でアクセスできるミドルウェア」
なんていう解釈でいいのかなって思っています。
なんとなくわかったところで、設定をしてみましょう。

さて、実行環境からですが、Windows Server 2012 を使用します。

まず追加で、一つソフトウェアをインストールしましょう。
Microsoft Access データベース エンジン 2010 再頒布可能コンポーネント から
AccessDatabaseEngine_X64.exeをダウンロードしましょう!

ダウンロードしたAccessDatabaseEngine_X64.exeを実行します。



次へ(N)

認証して、次へ(N)

適当なところを選んでインストールしましょう


インストールできましたね。


それでは、ODBC接続の設定をします。
今回は接続先のデータベースをExcelファイルにしてみます。

ODBCデータソースアドミニストレータ(64ビット)を起動します。



システムDSNタブを開いて、追加(D)



Microsoft Excel Driver(*.xls,*.xlsx,*.xlsm,*.xlsb)を選んで、完了



データソース名を適当に決めて、入力(今回はDATABASE1にしました)し、
書き込みをするなら、「読み取り専用(L)」のチェックを外します。
ブックの選択(S)をクリック。


データベースを選びます。
(今回は、「C:\DB」に「Database.xlsx」を置いたので、それを選びます。)

 
Database.xlsxの中身は以下のようなexcelファイルです。
 


DATABASE1 の設定ができました。



ここまでで設定できました。
これだけでOKです。簡単でしょ?

動くか確認したいので、簡単なASPXサイトを作ってみましょう。!
(今回はIISの設定は割愛します。後日その辺説明できるといいなぁ。)


サンプルコード

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ASPSite01.aspx.cs" Inherits="ASPSite01" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>ASPSite01</title>
</head>
<body>
<%
    //テーブル作成
    using (System.Data.Odbc.OdbcConnection OdbcCon = new System.Data.Odbc.OdbcConnection())
    {
        //システムデータソースの名前を指定
        OdbcCon.ConnectionString = @"Dsn=DATABASE1;";
        //ODBCコネクションをオープン
        OdbcCon.Open();
        //SQLコマンド文字列作成
        System.Data.Odbc.OdbcCommand OdbcCom = OdbcCon.CreateCommand();
        OdbcCom.CommandText = "SELECT * FROM [Sheet1$] ";
        //SQLコマンドの実行
        System.Data.Odbc.OdbcDataReader OdbcRea = OdbcCom.ExecuteReader();
        //データ行作成開始
        while (OdbcRea.Read())
        {
            string tempstring = "";
            //列数分ループさせる
            for (int i = 0; i < OdbcRea.FieldCount; i++)
            {
                tempstring += OdbcRea[i]+" , ";
            }
            //一列出力
            Response.Write(tempstring + "<br />");
        }
        //ODBCコネクション切断
        OdbcCon.Close();
    }
    %>
</body>
</html>


上のコードを書いたASPsite01というページを作成しました。

こちらにブラウザでアクセスすると、下のように表示されます。


 
あー、ずいぶんシンプルですね・・・。

とりあえずこれでODBCを使用してデータベースに接続するWebページが作成できました。
これをtableタグで囲んだりするともっと見栄えがしてくると思います。

結構かんたんじゃん!って思われたかもしれませんね。

参考になれば幸いです。

以上!

0 件のコメント:

コメントを投稿

AWSに手を出してフレームワークも使ってみたが・・・。

サイトを作り直しました。 AWS上に構築した Content created by AXY を作り直しました。 具体的にはbottle.pyを使ったpythonで構築したサイトからPHP7を使用したサイトに再構築しています。 特別何か問題点があったというわけで...