2014年09月10日

Windows7 で、database環境を構築します。

(2014/09/10)
DelphiXE5から、FireDAC(旧AnyDAC)が標準で、バンドルされ、商用/オープンソースの非常に多数のデータベースに容易に、接続できるようになりました。

でも、実際のところは、どうするの?
という疑問をもとに、
計、6種類の商用/オープンソースのデータベースをインストールし、Delphiからの、アクセス環境を手元(ローカル環境)で、構築します。
データベースごとの、アクセスの注意点や、実際のコードを、記述しながら、進めます。

サーバー(Windows7 64bit)と、クライアント(Windows7 32Bit)は、別マシンとします。

firedac_architecture_jp (2).jpg

サーバー機は、Windows7 Pro版64bit 、サービスパック1 (実機でメモリは2GB)
ブラウザは、Google Chromeも使用します。

商用(無償版)
Oracle Database 11g Express Edition(XE)
Microsoft SQL Server 2014 もしくは、Microsoft SQL Server 2012 

オープンソース版 (ライセンス形態が、各々ことなるので注意)
PostgreSQL9.3
MySQL5.6
Firebird 2.5
SQlite3


計、6種類の商用/オープンソースのデータベースをインストールし、Delphiからの、アクセス環境を手元(ローカル環境)で、構築します。
データベースごとの、アクセスの注意点や、実際のコードを、記述しながら、進めます。

共通の設定として、
サーバー側の実機の、ipアドレスは、任意ですが、 このサイトでは、192.168.24.112 とします。 
データベース名 testdb
ユーザー名 各DBのAdmin権限のユーザー
パスワード Passwd6
とします。 

posted by a23 at 19:21| Comment(0) | はじめに

2015年03月13日

[FireDAC][Phys][ODBC][Microsoft][ODBC SQL Server Driver]ほかの実行結果のために接続できません

[FireDAC][Phys][ODBC][Microsoft][ODBC SQL Server Driver]ほかの実行結果のために接続できません。

err31.png



posted by a23 at 10:31| Comment(0) | はじめに

2015年04月11日

Delphi XE7 + FireDAC + MySQL5.6

DelphiXE7 + FireDAC + MySQL5.6 
Windows7にインストールテストOKで、CentOS6で、エラーが出た。 手元の環境で、確認の方法とかが、わかりにくかったので、メモ。
手元で、CentOS機でテストした場合、一見、動作がおかしいようには、見えなかった。

結論は、テスト機、Windows7に、MySQL5.6を、インストールした場合の、my.ini の初期値と、CentOS6.6にMySQL5.6を、インストールした場合の、my.cnfi の初期値が、違ったため。

w7_56.jpg

な感じで、テストしていきます。 だいたいの動作と、データコンバートのプログラムが出来上がったので、Linuxでのテストを試みます。

ひさひざのCentOS環境でのインストールなので、ググりながらのインストール
このとき、サーバー機のIPアドレス/データベース名/パスワードは、まったく同じとしていました。
双方ともに、my.ini / my.cnfは、初期値の状態で使用。
c6_56.jpg

CentOS環境にすると、集計などで、プログラムが中断されることが、ありました。 SQLをWorkBenchで、試してみると、動作します。
単純な、登録/修正/削除などは、とくに問題なく動作していましたので、問題がClient側なのか、サーバー側なのかが特定しづらかった。
MySQLに詳しい方に、お伺いしましたところ、『Windowsでは通るがCentOSだと通らない、という話は聞いたことがありません』とのことでしたので、こちらの環境に問題があると、判断しました。

Windowsの、my.iniは、問題なしと判断し、(ちょっと面倒なので避けていましたが)CentOSのmy.cnfを確認していくことにしました。
windowsで、
mysql>show grants;SHOW variables like 'character_set%';
My56_win.png
CentOSで、
mysql>show grants;SHOW variables like 'character_set%';
c6_cnf.png

で、文字コード
character_set_database  latin1
character_set_server     latin1
と、なっていた。


my.cnfに追加
[client]
port=3306
default-character-set=utf8

[mysqld]
character-set-server=utf8

MySQLを再起動して、
mysql>show grants;SHOW variables like 'character_set%';
Screenshot-root@localhost:~.png

この後は、テスト動作、はOKでした。

XE8が、でましたね。


posted by a23 at 15:50| Comment(0) | はじめに