Rakuten

  • 楽天ダウンロード

    楽天市場

おすすめ本

天気予報

最近のトラックバック

  • event (夢茶爺&苦茶爺のPC奮戦備忘録)

カウンタ

VC

admax

2018年9月10日 (月)

【Oracle】Oracle10gからOracle11gへの移行でユーザログイン不可について

最近、Oracle10gのデータベースをOracle11gに移行した時に不具合が発生しました。 Oracle11gへのデータベース移行は問題無かったのですが、クライアント側のVisualBasic.NETのプログラムを動作させると Oracleへのログインができない状況でした。

データベース移行に当たって、10gと同じユーザを作成して行ったのですが、 なぜかVB.NETのプログラムでそのユーザでの11gへのログインが不可なのです。 データベースのユーザへのログインはSQLPlus等でログインを確認したのですが、 VB.NETのプログラムでのログインNGがよくわかりませんでした。

その後、調べてみると、Oracle11gからはユーザのパスワードが大文字、小文字を区別することが分かりました。 SQLPlusでその様子を調べてみると、以下の様になっていました。

システムパラメータの sec_case_sensitive_logon の値が TRUE は大文字、小文字を区別する設定です。
この値を以下の様に FALSE にすれば、パスワードがOracle10gの時と同様の扱いになる様です。 結果は以下の表示になります。

この設定より、VB.NETのプログラムでのログインが出来る様になりました。 Oracle10gとは古いとお思いでしょうが、まだまだ10gで動いているところもあります。 データベースの移行での一助になれば幸いです。
楽天市場

2018年8月14日 (火)

【PHP】「stdClass」を関数の引数としての使い方について

以前 stdClass の使い方を以下の記事に記しましたが、今回はそれを関数の引数に使おうと思います。

【PHP】連想配列の様な「stdClass」の使い方について

stdClass を引数にする場合には、どの様なプロパティを設定するのかは、前もって関数の呼び出し側と、関数内の処理を決めておく必要があります。
但し、引数が非常に多くなる場合には stdClass で渡すことですっきりした関数呼び出しにはなると思います。

以下のソースは stdClass を生成し3個のプロパティへを設定し、その内容を表示する簡単な例です。


3個のプロパティ値が表示されることが確認できます。

さらにもう一つの関数を宣言します。 この関数は、同じ引数を持つのですが各プロパティを再設定する様にしています。


これを実行すると以下の様な結果になります。

関数の引数としてクラスを渡すと、参照渡しで行われる様です。 参照渡しのため、クラスプロパティの値を書き換えることが出来ますので、注意が必要です。

また、 stdClass にプロパティが存在するかどうかをチェックし、処理を分けることも可能です。 上のソースに4番目のプロパティの存在有無で処理を分ける様にする処理を付加したものを以下に示します。


これを実行すると以下の様な結果になります。

楽天市場

デル株式会社

【PHP】可変変数と可変クラスの使い方について

PHPでは変数に関数名を設定し、その変数の後に括弧(())を付けることで、変数に設定された関数を実行します。 これは、似た様な関数を作成した時に、何かの条件で関数の実行振り分ける時に使えるかと思います。

以下の例では、2個の関数を宣言し、関数名の配列を宣言し、繰り返し処理でそれぞれの関数を実行しています。


結果は以下の表示になります。

それぞれの関数が実行されたことが分かります。


可変関数の方法をクラスにも適用できます。 可変関数の様に別名のクラスを用意し、同じメソッドを持たせてみます。

この結果は以下の様に、クラスが順次生成され、「hello」メソッドが呼び出されることが分かります。


楽天市場

デル株式会社

2018年8月13日 (月)

【PHP】配列の中に参照変数を持つことで別々の変数の要素を操作する

PHPでのプログラムでは変数の参照を扱う場合には、変数の先頭に & を付けます。 配列の要素を操作する場合には以下の様に、配列の中身を受ける変数の先頭に & を付けて処理します。

以下の例では、数値配列を設定し、配列内の要素の値を10倍しています。


結果は以下の表示になります。

配列の全ての要素が10倍されていることが分かります。


ここで、別々の変数の参照を配列に持ち処理する方法を示します。

この結果は以下の様に、3個の変数の値がそれぞれ10倍されたことが分かります。


デル株式会社

2018年5月31日 (木)

【PHP】配列の代入はクローンコピーになる

最近、PHPでのプログラムを組む上で、配列の代入の動作がどうだったか少し心配になったので調べてみました。

配列の代入は、代入元の配列の内容そのものが全てコピーされます。他の言語では代入元のクローンを作成し、 代入先の配列に設定する感じです。

以下のソースは代入を行う簡単な例です。

結果は以下の表示になります。

コピー先の配列の内容が、コピー元の内容と異なっていることが分かります。

但し、代入の所で「&」を使用すると、内容がコピーされるのではなく、参照がコピーされます。

この結果は以下の様に、2個の配列の内容が同じになります。


楽天市場
デル株式会社