Javaで参照渡しの関数を作るには
Java
2004年05月31日
以下の様に、
参照渡し用のクラスを使用する事で実現できる。
//参照クラス
public class TestAdd {
public static int execute(
String i_cd,
TestOutparam outparam
) {
outparam.o_outcd = i_cd.concat("OUT");
}
//参照渡し用クラス(ここではTestAddのインナークラス)
public static class TestOutparam {
public String o_outcd = "";
}
}
--呼び出し側処理
//参照渡し用クラス
TestAdd.TestOutparam outp = new TestAdd.TestOutparam();
String id = "IN";
int ret = 0;
ret = TestAdd.execute(id, outp);
System.out.println outp.o_outcd;
→"INOUT"
ASPでクライアントのキャッシュを見てしまう
ASP・VB・Excel
2004年05月31日
Windows・IIS5.0・ASP
【現象】
サーバにリクエストが飛ばず、クライアントのキャッシュを見てしまう。
【原因】
ASPの最初の場所に下記のように記述していた為(IIS4の時はこれでいけたはず)
Response.AddHeader "Pragma", "no-cache"
Response.AddHeader "cache-control", "no-store"
Response.Expires = 0
【対処】
下記のように記述すればOK
Response.Expires = 0
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"
fedoraにwindowsよりSSH接続すると日本語が文字化する
Linux・Unix・Apache
2004年05月31日
Fedora・EXCEL2003マクロ
【現象】
fedora linuxサーバーにwindowsよりSSH接続すると日本語が文字化する
【原因】
fedora の文字コードが UTF-8 になったのが原因
(今までの Linux は eucJP)
TeratermがUTF-8に対応していない為
【対処】
puttyで代用
参考サイト
ASPでRequestの後を省略した場合
ASP・VB・Excel
2004年05月31日
省略した場合、
QueryString、Form、Cookies、ClientCertificate、ServerVariables
の優先順位で処理を行う。
Eclipse ant JBossでコンパイルエラー
Java
2004年05月31日
Windows2000・Java・Eclipse・JBossプラグイン
【現象】
JBoss環境をEclipse、antでコンパイルしようとしたところ、
Javaのバージョンが違うというエラーが発生する
【原因】
Dos窓でjava -versionを実行すると違うバージョンが表示される
(Eclipseが違うバージョンのJavaを見ていた為)
【対処】
OracleをインストールするとPathに「%JAVA_HOME%」
と記述されるので、その部分を本来のJAVA_HOMEの
フルパスで記述するように変更する
Excelマクロでフォーカスが移動しない
ASP・VB・Excel
2004年05月31日
Windows・EXCEL2003マクロ
【現象】
エラーチェックなどでフォーカスをセットしているにもかかわらず、フォーカスが移動しない
【原因】
処理速度を上げる為にApplication.ScreenUpdating を falseにしていた為
【対処】
Application.ScreenUpdating = True 'フォーカス移動の為に設定を一時的に戻す
フォーカス移動
Application.ScreenUpdating = False '画面を更新しない(高速化)
マクロの処理速度を早くする方法
ASP・VB・Excel
2004年05月31日
Windows・EXCEL2003マクロ
【現象】
マクロの処理速度が遅い
【原因】
セルに値をセットしている時に他のセルの計算処理が自動で行われていた為
【対処】
変数 = Application.Calculation '元の計算方式を保存
Application.Calculation = xlCalculationManual '計算しない(高速化)
処理・・・・
Application.Calculate '計算実行
Application.Calculation = 変数 '元の計算方法に戻す
global.asaを使用すると 「'OraSession' を作成中にエラーが発生しました。」のエラーが発生する
ASP・VB・Excel
2004年05月31日
Windows・IIS・ASP・Oracle9.2
【現象】
global.asaを使用すると 「'OraSession' を作成中にエラーが発生しました。」のエラーが発生する
【原因】
オラクルサポートセンター曰く
IIS ASP/ASP.NET で 9.2 以降のミドルウェアを使用した場合にエラーが発生する
【対処】
解決方法詳細
EclipseでStrutsのデバッグが出来ない
Java
2004年05月31日
Windows2000・Java・Eclipse・Tomcatプラグイン・Struts
【現象】
Eclipseでデバッグを行うとデバッグポイントで停止するのだが、
ソースがないと怒られる。
【原因】
Eclipseの環境設定ミス
Eclipse-Window-設定-Tomcat-Source Pathにデバッグするプロジェクトが設定されていなかった為
【対処】
上記を設定後
設定後Eclipseを再起動すればOK。
JavaのRMIって何?
Java
2004年05月31日
RMIでは、クライアントからサーバー上にあるJavaクラスのメソッドを呼ぶ事が出来る。
(別PCにあるJavaの関数を呼べる)
−−−−−−−−−−−−−−
★クライアント ★サーバー
@クライアントプログラム @リモートオブジェクト
1.↓ 2.↑ 4.↓ 3.↑
@スタブ 5.←→ @スケルトン
−−−−−−−−−−−−−−
1.リモートメソッド呼び出し
2.戻り値
3.リモートメソッド呼び出し
4.戻り値
5.通信
※スタブはリモートオブジェクトと同じメソッドを持っていて、
クライアントから呼ばれると、その情報をスケルトンに送る。
スケルトンはリモートオブジェクトのメソッドを読んで戻り値をスタブに返却、
スタブはそれをクライアントに返す。
(1)コンパイルは「rmic」コマンドで行う
(2)生成物は4つ。
1、リモートインターフェース
2、リモートオブジェクト
3、スタブ
4、スケルトン
VIEWのCREATE文中で定数を使いたい
SQL
2004年05月31日
この場合は、定数を返却するFUNCTIONを作成し、
CREATE文中では、そのFUNCTIONを参照することで実現できる。
JOINを使った外部結合・・(+)を使わない
SQL
2004年05月31日
例)
FROM A LEFT JOIN B ON A.Key = B.Key
→RIGHT JOIN
→OUTER JOIN(両方にあってもなくても取得)
自動でカウントアップするような値を持ちたい(Oracle)
SQL
2004年05月31日
例)
CREATE SEQUENCE testseq 〜 ← シーケンス作成
SELECT testseq.CURRVAL FROM DUAL ← 現在のシーケンスの値を参照
SELECT testseq.NEXTVAL FROM DUAL ← 次のシーケンスの値を参照 ※参照した時点でカウントアップ
SQL文で、ある月の最終日を取得したい場合
SQL
2004年05月31日
例)
SELECT LAST_DAY(TO_DATE('20040120')) FROM 〜
@検索結果
20040131・・・DATE型で返却される。
PL/SQLのカーソルの使い分け
SQL
2004年05月31日
複数件を求める場合は。カーソルを使用。
PL/SQLのIF文でのNULL値の扱い
SQL
2004年05月31日
NULL値はISNULL以外の条件式を無視する。
例)
IF a < b THEN ← aにNULL、bにNULLでも結果はELSEになる
・・・・
ELSE
・・・・
END IF;
SQLの中でIF文を使いたい(Oracle)
SQL
2004年05月31日
SQL文中で、IF文論理を使用できる。
例)
SELECT SUM(CASE WHEN B='1' THEN A
ELSE A*-1 END)〜
2、DECODE式で可能・・・値を比較し結果を戻す。
例)
SELECT DECODE(a_id, 1, 'a',
2, 'b',
3, 'c',
'd' ← どれにも当てはまらない場合(DEFAULT値)
)
FROM 〜
※a_idが1の場合は、'a'を返す。。。
1回のSQLで小計、合計を計算するには(Oracle)
SQL
2004年05月31日
・・・GroupBy句に使用する。検索結果がツリー構造イメージで返ってくる。
(対象件数が1件であっても、複数件返って来ることになる)
パフォーマンスはいいらしい。。
例)
@検索SQL
SELECT table_a.COL1, table_b.COL2, SUM(table_c.COL3)
FROM table_a, table_b, table_c
WHERE 〜
GROUP BY ROLLUP (table_a.COL1, table_b.COL2);
@検索結果
COL1 COL2 COL3
−−−−−−−−−−−−−−−−−−−−−−−−−−−
XXXX YY 10
XXXX YY 20
XXXX 30 ←小計取得
WWWW ZZ 5
WWWW ZZ 10
WWWW 15 ←小計取得
90 ←合計取得
ASPでの全角と半角の扱い
ASP・VB・Excel
2004年05月31日
○"AA"(半角)→ Len("AA") = 2、LenB("AA") = 4
○"AA"(全角)→ Len("AA") = 2、LenB("AA") = 4
上記のように、全角・半角とも同じ結果になる。
<関連記事>
ASP:全角・半角を考慮した文字数(バイト数)取得例:Len、LenB
Appletでローカルファイルに書き込みを行う事はできる
Java
2004年05月31日
・ローカルPCに対して全ての処理を許可
permission java.security.AllPermission;
・ローカルPCに対してファイルの読み書きを許可
permission java.io.FilePermission "c:\\temp\\*", "write";
※システムとしては、あまり好ましくない。社内イントラシステム等で使用。
Appletクラス等のgetImage(URL)で画像がリフレッシュされない
Java
2004年05月31日
URL先の画像が更新されていても、JVMが最初の画像のみ表示し続ける。
画像をリフレッシュしたい場合は、ToolkitクラスのcreateImage関数を使用する。
※リアルタイムに画像を更新し、
その画像をリフレッシュすることで動画イメージを実現する様なシステムに利用できる。
例)
Appletを使ったビル監視システムなど
SQLの実行計画
SQL
2004年05月31日
※SQL*PLUSで、”set autotrace on”コマンドの実行後、
SQLを実行することで、測定できる。
SQL*PLUSでPL/SQL内のデバッグを行うには
SQL
2004年05月31日
例)
--PL/SQL内でデバッグを行いたい箇所に挿入
DBMS_OUTPUT.PUT_LINE(〜);
※SQL*PLUSで、”set serveroutput on”コマンドの実行が必要。
PL/SQLでUPDATEした件数を取得したい
SQL
2004年05月31日
例)
wk_cnt := SQL%ROWCOUNT;