rss ログイン
JJ1RLWのXOOPS Cube Siteにようこそ

メインメニュー

ログイン


ユーザー名:


パスワード:





パスワード紛失  |新規登録

オンライン状況

1 人のユーザが現在オンラインです。 (1 人のユーザが xpress ブログ を参照しています。)

登録ユーザ: 0
ゲスト: 1

もっと...

アーカイブ

カテゴリー

アクセスカウンタ

今日 : 3535
昨日 : 7171
総計 : 244486244486244486244486244486244486

カレンダー

2018年4月
« 3月    
1234567
891011121314
15161718192021
22232425262728
2930  

xpress ブログ » » DATABASE

  カテゴリー ‘DATABASE’ のアーカイブ
WordPress for XOOPS

Accessで家計簿をつけ始めた

昔、家計簿を手書きしていたけど、いつの間にかやめてしまいましたが、昨年夏頃からエクセルを使って家計簿をつけ始め、エクセルのデータをAccessにデータを移行して見ました。

使ったのはフリーで配布されている「Accessの入門用の例題」で、テーブルはたった二つで非常にシンプルです。
大体はレシート単位でデータ入力するだけで、費目の月単位での推移をグラフに出来たりします。

今回、表示や印刷時に「年度、月度」を「年、月」に変更、また、残高更新のボタンを押すと「データ型の変換エラー」となるので、モジュール1を
— ここから–
‘累計残高をグローバル変数で宣言
Dim RuiZan As Long
Public Function ZanIni()
RuiZan = 0
End Function
Public Function ZanDaka(A As Long, B As Long) As Long
RuiZan = RuiZan + Nz(A) – Nz(B)
ZanDaka = RuiZan
End Function
— ここまで —

— ここから–
‘累計残高をグローバル変数で宣言
Dim RuiZan
Public Function ZanINI()
RuiZan = 0
End Function
Public Function ZanDaka(A, B)
RuiZan = RuiZan + Nz(A) – Nz(B)
ZanDaka = RuiZan
End Function
— ここまで —
に変更しました。

家計簿のテーブル画面
家計簿のテーブル画面

家計簿のフォーム画面
家計簿のフォーム画面

ガソリン代をグラフ表示した画面
家ガソリン代をグラフ表示した画面

参考サイト
Access活用講座

CakePHP関連のリンク(一部PHP関連を含む)

CakePHPをいじった時に参考にさせて頂いたサイトの情報を投稿するのを忘れていたので、リンクを投稿しました。
なお、リンク集(links)にもデータを追加しました。

参考にさせて頂いたサイト
CakePHP Installation
CakePHP インストール
CakePHPフレームワークによる快速WEB開発
【CakePHP入門】bakeの使い方
cakePHPインストールでハマった話。(intl.so)
CakePHP3でのタイムゾーンの設定
CaKePHP3 DBタイムゾーン設定
CakePHP3でのタイムゾーンの設定
日付と時刻 – CakePHP
CakePHP3での日時フォーマットとタイムゾーン対応について
DateTime クラスのまとめメモ
CakePHP3でUpload Plugin 3.0を使ってファイルがアップロードできない
CakePHP 画像や各種ファイルのアップロードフォームを作る
画像や様々なファイルをDBに格納
CakePHP / Tips
composerでのcakePHPインストール
cakePHP2でコマンド実行
cakePHP selectフォームのdisabled
cakePHP 日本語のヴァリデーション
cakePHP ビューでの日付の整形
cakePHP TOPページカスタマイズ
cakePHP 確認画面
cakePHP modelの再定義
cakePHP redirect
cakePHPで共通変数の定義
cakePHP アソシエーション
cakePHP モデル等の複数形に注意 information
cakePHP ロールバック
cakePHP conditionの指定方法
cakePHP formで複数要素を配列として利用
cakePHPで共通変数の定義
cakePHP ファイルアップロード
cakePHP 動的にタイトルを変更
Upload Plugin 3.0
For documentation (Introduction Upload Plugin 3.0,..etc)
Uploading files and images with CakePHP 3 or a tutorial on using the 3.x version.
Upload Plugin 2.0 for CakePHP 2.x documentation.
CakePHP3でファイルのアップロード処理を自作・解説付き・その1
CakePHP3で画像・ファイルのアップロード処理を自作・解説付き・その2
CakePHP3のForm Helperの使い方のまとめ
CakePHP3でDocumentRootやtmp、webroot、logsなどのフォルダへのパスの定数
CakePHP3でDocumentRootやwebroot、imgフォルダのURLやドメイン、パスを取得
2017年版!最新のPHPフレームワーク比較と選ぶ基準
Windows 10 + IIS + PHP 7+CakePHP 3+MSSQLを、サブディレクトリに入れて使う
CakePHP を IIS7.5 で動かす
xoopsCube + CakePHP
CubeCakeを使う場合に注意する点 その1
Cakecon xoops cubeなのにcake-phpを使う
PHPでファイルアップロードを実装する方法
PHP製ファイル管理ツール『File Thingie』
PHP Labo – フリーPHPスクリプト配布サイト

なぜか、MySQL 8.0.4でインストーラーが途中で止まる

なぜか、MySQL 8.0.4でインストーラーが途中で止まってしまいます。
しかし、サービスを起動すると普通に起動できるが、以下の様なエラーとなり、rootでログインできない。

ERROR 2059 (HY000): Authentication plugin ‘caching_sha2_password’ cannot be loaded: ?w’e?3?e?????W?…?[???a?c?A?c?e?U?1?n?B

なぜだろうと思い調べたら、以下の様な記述を見つけたのですが、今ひとつ判りません。
6.5.1.3 Caching SHA-2 Pluggable Authentication

取り敢えず、my.iniの最後尾に
default_authentication_plugin=mysql_native_password
上記を追加して、MySQLを再起動。
コマンドプロンプトで、「mysqladmin -u root password バスワード –default-auth=mysql_native_password」。
127.0.0.1のホストとrootでmysql_native_passwordを使用するに設定して、ローカルからも普通にログイン出来る様にしました。
ただし、このやり方が正しいのかは判りません。

その後、数時間してグーグルで検索すると、
MySQL 8.0.4におけるデフォルト認証形式の変更

試しに、インストーラーから再度コンフィギュレーションするとMySQLサーバにログイン出来ない。

MySQLサーバにログイン出来ない時のインストーラー画面
MySQLサーバにログイン出来ない時のインストーラー画面

やはり、普通のMySQLクライアントだと×になる様ですね。
インストーラーが「オバカさん」なのか、私の設定が悪いのか不明です。

CakePHP 3.5を触って見た

初めて、CakePHP 3.5を触って見ました。
最初はインストールとチュートリアルに従って動作を確認しました。

その後、色々とグーグルさんのお世話になり、bake(スクリプト)があるのを知り、早速試して見ました。
このbakeは、「面白い機能です。」、データベースのテーブルの入力・表示(リスト、個別)・編集・削除がブラウザから行える様に、自動的にCakePHP用のPHP文を作ってくれます。

使っているとMS-DOS時代のdBASE III PLUSを使っているかの様な感覚になりました。
今後、画面のカスタマイズやデータのコントロールなどについて、少しずつ勉強しようと思います。

CakePHPにアクセスした時の画像
CakePHPにアクセスした時の画像

ワンクリックで、MySQLで加工してデータをSQL Serverに送る

ワンクリックで、MySQLで加工してデータをSQL Serverに送れる様にして見ました。

1. 以前の記事でMySQLからSQL Serverへデータを流す際に、一部手作業が残っていたので、これを完全自動化する為に、以前から利用していたMySQL用SQL文とSQL Server用SQL文を利用し、このSQL文にデータをCVSファイルとしてエクスポート・インポートする部分を追加しました。
2. このSQL文をPHPで読み込み、それぞれのサーバでSQL文を実行する。
3. 一連の作業を実行するバッチファイルを作成して完全自動化しました。

具体的には、MySQLサーバのXOOPS Cube上のxpress(素のWordpressをプラグインとして動作させる)モジュールのデータを、SQL Server上のXOOPS 2.6.0のpublisherモジュールで利用できる様に加工し、データをエクスポート、このデータをSQL Serverにインポートする。

参照・更新する主なテーブル
(元となるデータはMySQLで、SQL Serverの別のアプリケーションで再利用する)
参照・更新する主なテーブル

参考にさせて頂いたサイトのプログラムの一部をコピペさせて頂きました。
また、◎を付けたサイトの情報をプログラミングのヒントにさせて頂きました。
情報を提供して下さった方々に感謝します。..m(_ _)m

参照サイト
SQLファイルの読み込み
プログラミング言語PHPで、引数に指定したファイルから1行読み込む関数 fgets()を紹介します。
SQLのコマンドをファイルから読み込み実行する
PHPからSQL Serverへの正しい接続方法
SQLServerのテーブルにCSVファイルをインポートする方法
PDOでMySQLに外部SQLファイルを流す
データの一括インポートと一括エクスポート (SQL Server)
SQL Serverで大量レコードをインサートする方法
[PHP][MySQL] データベースをダンプ(エクスポート)する
PHPとMySQLのSELECT文でデータ取得(PDO)
[PHP] DBからCSVを生成してダウンロードする
MySQLで改行やカンマを置換する – 個人の技術メモ – 気ままNote
MySQLテーブルをそのままコピーする
MySQLにdatetime型で保存したデータをUNIX TIMEで取り出すUNIX_TIMESTAMP関数
同じ行のあるフィールドのデータを別のフィールドへコピーしたい
テーブルを別のデータベース内のテーブルにコピペする方法(MySQL)
全データの削除
MYSQLのexport時に文字化けします。
DBOnlineではMySQLやSQLiteなど各種データベースのインストール方法や設定に関する解説を行っています
◆インポート/エクスポート ウィザード による単純なデータ転送 – SQLServer
PHP内からの.sqlファイルの読み込み

MySQLからSQL Serverへのデータ移行

XOOPS2.6.0をSQL Serverで稼働させる為に、MySQLからSQL Serverへのデータ移行を行いました。
この時、SQL Server Management Studio (SSMS)を使ってデータ移行を行おうとしましたが、データインポートの途中でエラーとなり、上手く行きませんでした。

MySQLのテーブルは認識出来ている画面
MySQLのテーブルは認識出来ている画面

途中のエラー画面
途中のエラー画面

そこで、SSMSのリンクサーバを設定してテーブルのデータを表示して見ると問題無く表示されます。

リンクサーバへの問い合わせ画面
リンクサーバへの問い合わせ画面

仕方なく、MySQLのテーブルとデータをSQL文形式でエクスポートし、このSQL文をテキストエディタを使って、以下の様に編集してSQL Serverへ流し込みました。

MySQLよりエクスポートしたSQL文
CREATE TABLE IF NOT EXISTS x174_avatars_avatar (
avatar_id int(10) unsigned NOT NULL AUTO_INCREMENT,
avatar_file varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
avatar_name varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
avatar_mimetype varchar(30) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
avatar_created int(11) NOT NULL DEFAULT ‘0’,
avatar_display tinyint(1) NOT NULL DEFAULT ‘0’,
avatar_weight smallint(5) unsigned NOT NULL DEFAULT ‘0’,
avatar_type char(1) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT ”,
PRIMARY KEY (avatar_id),
KEY avatar_type (avatar_type,avatar_display)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;

SQL Serverへ流し込むSQL文
CREATE TABLE “x174_avatars_avatar” (
“avatar_id” INT NOT NULL IDENTITY(1,1),
“avatar_file” varchar(30) NOT NULL DEFAULT ”,
“avatar_name” varchar(100) NOT NULL DEFAULT ”,
“avatar_mimetype” varchar(30) NOT NULL DEFAULT ”,
“avatar_created” INT NOT NULL DEFAULT ‘0’,
“avatar_display” TINYINT NOT NULL DEFAULT ‘0’,
“avatar_weight” SMALLINT NOT NULL DEFAULT ‘0’,
“avatar_type” char(1) NOT NULL DEFAULT ”,
PRIMARY KEY (“avatar_id”)
);
CREATE INDEX “avatar_type” ON “x174_avatars_avatar”(“avatar_type”,”avatar_display”);

ポイントは、AUTO_INCREMENTをIDENTITY(1,1)に、PRIMARY KEY以外のKEYをCREATE INDEXに置き換える、少々面倒でしたが色々と勉強になりました。

参考サイト
SQL ServerからMySQLのデータベースにアクセスしてみる。
SQL ServerからMySQLへリンクサーバを設定する

publisherのメンテナンス用SQL文を作って見た

XOOPS 2.6.0(本家版)のテストで、xpressのデータをpublisherに流し込むのに、Excelを利用した手作業が発生するので何とかならないかと思い、publisherのメンテナンス用SQL文を作って見ました。

publisherのitems、categoriesと2つの作業用テーブルの合計4つを用意して、XOOPSのコメントテーブルとxpressの各テーブルから抽出、集計してpublisher_items、publisher_categoriesのテーブルを完成させることをSQL文だけ行える様にしました。

それでも、MySQLからSQL Serverへのデータの流し込みには、テキストエディタでの置き換え処理が必要ですが、大幅な時間短縮となります。

MySQL(InnoDB)、utf8mb4環境で、indexの文字数制限

XOOPS 2.6.0をテストしていて、「Index column size too large. The maximum column size is 767 bytes.」とMySQLに叱られるので、MySQL 5.6.xだったので、取り敢えずindexにする文字数を191文字に指定して切り抜けました。
問題は、インデックスに指定したカラムの文字数が191文字を超えた場合、インデックスだけからはデータを特定出来ません。

どうも、MySQL 5.7.9以降なら、デフォルト設定でOK。
MySQL 5.6だとmy.ini(my.cnf)で、
innodb_large_prefix = ON
innodb_file_per_table
innodb_file_format = Barracuda
として、テーブル作成時にROW_FORMAT=DYNAMICを指定する。

参考サイト
MySQL(InnoDB) で charset を utf8mb4 にする注意点の現在
MySQL(InnoDB) で “Index column size too large. The maximum column size is 767 bytes.” いわれるときの対策

MySQL5.6と5.7の設定値

MySQL5.7を使っていて、5.6に較べてディスクアクセスに異常に時間が掛かる現象が見られ、MySQLでメインで使うバージョンを5.6系に変更していました。

そこで、MySQL5.6と5.7の設定値を比較した記事等を参考にシステム変数の一覧表示を行うSHOW VARIABLESの結果を比較して、MySQL5.6では、sync_binlogが0になっているが、5.7では、1になっている。
まさに、ログのディスクへの書き込み確認をその都度行っている様なので、MySQL5.6と同じ設定にして見ると、さほど気にならない程度になりました。

MySQLでメインで使うバージョンを5.7系に変更しました。

今回比較したのはMySQL5.6.37と5.7.19ですが、MySQL8.0.2でもsync_binlogが1になっていました。
※2017-08-20 一部加筆修正

Zen-Cart 1.5.6-alphaをテスト

Zen-Cart 1.5.6-alphaが公開されていたので、テストして見ました。
この版は、Zen-Cartの最新版1.5.5eの後継版だと思います。
以前から1.6.0もテストしていたのですが、まさか1.5.6が出てくるとは思いませんでした。

参考サイト
GitHub zencart/zencart


 

Powered by XOOPS Cube 2.2 © 2001-2016 XOOPS Cube Project Distributed by XOOPS Cube 2.2 Distribution Team.