n-hirokiのプログラミング軌跡

プログラミングのメモ

VBでPostgreSQLに接続 その1

WindowsVisual Studio Express 2015を使用してPostgreSQLに接続したい。

今回はC++C#ではなくVBで行う。

 

先に結論を書くとNpgsqlがVisualStudioExpress2015に未対応で接続できなかった

 

ですが、その軌跡を書いてみます。

 

環境:Windows10

          Visual Studio Express 2015

          PostgreSQL 9.5 

 

VBPostgreSQLに接続するために

作業開始時の僕はVBとVisualStudioExpress2015自体触ったことのない状態からスタート。

何をすればいいのか全くわからなかったので、まずVisualStudioExpress2015をWindowsにインストールするところから始める。(今回はVisual Studio Expressのインストールのやり方は説明しませんが、画面の指示通りにやったら簡単にインストールできました。)

 

ローカルでPostgreSQLにDB作成

コマンドプロンプトを管理者権限で開く。

「C:」まで移動し、

psql -U postgres 実行  → PodtgreSQLに接続完了

 

データベース「testdb」作成

create database testdb; 

 

テーブル作成「profile」作成

カラムは「id」と「name」だけ。

create table profile(id int PRIMARY KEY, name text);

 

簡単にですがこれでデータベースとテーブルができた。

 

早速壁にぶつかる

・VisualStudioExpress2015の使い方

VBの文法など全般

VBでのPostgreSQLへの接続のやり方

などが全くわからない。

 

なのでひたすらGoogle先生に教わります。

Npgsql

Google先生に聞いてみたら、Npgsqlをimportsするとできるらしい。

 

Npgsqlとは、簡単に言うとC#/VBからPostgreSQLに接続するためのオープンソース・ライブラリ

 

以下のサイトを主に参考にさせていただきました。

vb.netでpostgresqlのデータベース接続、操作してみる

 

実際にそのサイトに書いてあるコードをVisualStudioExpress2015にコーディングして試して見る。

VisualStudioExpress2015の使い方もわからないので、Google先生に聞きながらやってみる。

 

 

先ほどのサイトに書いてある通り、実際にビルドしてみるとエラーに。

 

「そりゃそうだ。」

 

Npgsqlがダウンロードされていないからだ。

 

Npgsqlをダウンロード

Npgsql.dllはPostgreSQLのスタックビルダでダウンロードする。

ダウンロードが完了したら、PostgreSQLのファイルにNpgsql.dllが追加されているはず。

 

次にVisualStudioExpress2015の設定。

まずはソリューションエクスプローラのプロジェクトを右クリックし「参照の追加」を選択。

ここから、「PostgreSQL」をインストールしたフォルダに移動し、binフォルダ の中にある「Npgsql.dll」を選択する。

 

「Npgsql.dll」がない場合はダウンロードが出来ていないので、 PostgreSQLのスタックビルダを立ち上げてダウンロードし直す必要がある。

参照の追加が出来たらインポートを行う。

処理を書くファイル内の一番上に「Imports Npgsql」を追加する。

 

これで準備完了!

ビルドするとエラーが消えた。

早速デバッグ開始。

すると、Npgsql内で例外が発生して中断されてしまう。

 

「えっ、どうすればいいの?」

何回もコードが間違っていないかチェックしたが、ミスが見つからない。

DBもちゃんと作られている。

色々調べ色々試しましたが、全くわからない。

 

なのでこんな時のteratailですね!

teratail.com

質問してみました。

そしたら、

VisualStudioExpress2015にNpgsqlは対応していないと回答をいただきました。

「えーそもそもじゃん。じゃあどうすればいいのかな?」

もう一度、最初から調べなおしです。

 

 

「とほほ・・・」

 

PostgreSQL コマンドプロンプトコマンド

PostgreSQLコマンドプロンプトで扱う上での最低限のコマンドを簡単にまとめたものです。

 

PostgreSQLへの接続

sql -U username

PostgreSQLからの切断 

¥q 

DB一覧表示

¥l

DB作成

create database database_name

文字コード指定しDB作成

create database database_name encoding encoding_name

エンコーディング

EUC_JP 日本語
LATIN1 西ヨーロッパ
SJIS 日本語
UTF8 すべて

DB削除

drop database database_name;

DB接続

¥c database_name

文字型

character varying[n], varchar[n] 可変長 最大n文字の長さの文字列
character[n], char[n] 固定長 空白でパッドされたn文字の長さの文字列
text 可変長 長さに制限の無い文字列
date 日付
time[p] 時刻

テーブルの作成

create table table_name(column_name column_type,column_name column_type, column_name column_type,・・・・);

テーブル確認

¥dt

テーブルの削除

drop table table_name1, table_name2・・・;

NOT NULL制約

create table table_name(column_name1 column_type NOT NULL, ・・・);

UNIQUE制約

カラムに含まれる値は重複することが出来ないように設定

create table table_name(column_name1 column_type UNIQUE, ・・・);

PRIMARY KEY制約

create table table_name(column_name1 column_type PRIMARY KEY, ・・・);
 
 

プログラミングの可能性

あなたはプログラミングを行ったことはありますか?

 

プログラミングを行うってとても敷居が高いものだと思います。

ですが、そんなことも言ってられない時代がまさに来ています。

 

今日NEWS PICKSの記事で「もはや英語より必須!?文系もプログラミングを学べ」を読んで以前と考え方がとても変わってきてるように感じます。

 

 

プログラミングの現状

企業のIT化が必須になっている。

スマホやインターネットを使用しない日は無くなった。

暮らしにITがなくてはならないものになっている。

 

サービスにしても製品にしてもIT化するには、プログラミングの知識を持ったエンジニアの力が必須。

しかし、エンジニア職は人材不足。

特に日本には海外と比べてプログラミングができる人が圧倒的に少ない。

 

イギリスやフィンランド、オーストラリアでは小学生から必修科目になっている。

韓国でも中学校から正式科目となる見込み。

 

じゃあ日本は?

プログラミングを学ぼうとすると、書籍やオンライン教材を使用した独学や講義形式のスクールが主流。

本当に根気のある人じゃないとすぐ壁にぶちあたり、挫折する人が多い。

 

プログラミングはたった1つ間違っただけでエラーが出て、解決しないと先に進めない。原因を突き止めるだけで1日を要することもよくある。

こういうことが原因で挫折する人が多い。

 

すぐに相談できるエンジニアがいれば次に進むことができ、挫折する人も減ると思う。

 

正直、このNEWS PICKSの記事をを読んでプログラミングが英語より必須だとは思わないです。

プログラミングをやったことのある方だとわかると思いますが、プログラミングは英語の知識が結構必要です。

ですが、プログラミングに対しての日本全体の環境改善は取り組むべきだと思います。

プログラミングの技術レベルを上げることは日本が豊かになるのに必要なことですので真摯に向き合いたいことです。

 

 

プログラミングの可能性

ではプログラミングでどのようなことができるのでしょう?

いつも見ているスマートフォンはもちろんのこと、SNSやホームページやアプリ、YouTubeなどはもちろんプログラミングの技術の結晶でできています。

 

 

最近話題になったドローンやVR、 ARにはものすごく可能性を感じますね。

Amazon楽天のドローン便や被災地にドローンで支援物資を送る日が来るかもしれません。(実際にテストなどは行われている)

可能性は無限大です。

 

こんなニュースも出ています。

Googleが今、目の中に液体コンピュータを注入する「眼球内デバイス」の特許を申請しています。

なんか怖いですが、ものすごいことです。

映画や漫画の世界の出来事が現実になりつつあるように感じますね。

 

 

これらもプログラミングがなくては実現していません。

それを考えるとプログラミングの力は偉大ですね。

 

もうプログラミングができればなんでもできる感じがしてなりません。

もはや魔法みたいですね。

 

 

あなたもプログラミングを学んでみては如何でしょう?

MacとWindowsの違い PostgreSQLインストール

あーカオスフェス行きたい!

n-hirokiです!

 

最近、MacWindows両方にPostgreSQLや、Javaなどをインストールしました!

正直、かなり難しくて難しくて何回も挫折しそうになりました(T ^ T)

開発環境設定は苦手です。。

こんなにもターミナルやコマンドプロンプトをじっくり使った事なんてなかったしね。。

 

1、PostgreSQLをインストールしてみて

一番難しかったのは、「MacWindowsの違い」です!

 

今回はほとんどMacWindowsを平行に環境作りを行ったので、頭の中がぐっちゃぐっちゃに( ;´Д`)

僕は途中まで一切メモなど何も書かないで行ったので、途中からわけがわからなくなり何回か失敗しました。

メモは必須ですね!!

途中からメモを始めたら結構スムーズにいった!

 

しかも、失敗するにつれて余計に難しくなるので注意です!

 

アンインストールがしっかりできればいいのですが、うまくいかないとポート番号がもう使われてるなどのエラーが出てくる。

そのせいで、ポートの開放やら、ポート番号の変更やらいろいろ試しました。

 

 

2、MacWindowsの違いで苦労したこと 

いろいろあるので箇条書きします。

などなど。

 

もしあなたがプログラミング初心者で、開発環境設定を行う時はブログを書きながら行うことをお勧めします。

 

では、今度PostgreSQLのインストールした時のメモをこのブログに載せられたらと思います!