標籤

4GL (1) 人才發展 (10) 人物 (3) 太陽能 (4) 心理 (3) 心靈 (10) 文學 (31) 生活常識 (14) 光學 (1) 名句 (10) 即時通訊軟體 (2) 奇狐 (2) 爬蟲 (1) 音樂 (2) 產業 (5) 郭語錄 (3) 無聊 (3) 統計 (4) 新聞 (1) 經濟學 (1) 經營管理 (42) 解析度 (1) 遊戲 (5) 電學 (1) 網管 (10) 廣告 (1) 數學 (1) 機率 (1) 雜趣 (1) 證券 (4) 證券期貨 (1) ABAP (15) AD (1) agentflow (4) AJAX (1) Android (1) AnyChart (1) Apache (14) BASIS (4) BDL (1) C# (1) Church (1) CIE (1) CO (38) Converter (1) cron (1) CSS (23) DMS (1) DVD (1) Eclipse (1) English (1) excel (5) Exchange (4) Failover (1) Fedora (1) FI (57) File Transfer (1) Firefox (3) FM (2) fourjs (1) Genero (1) gladiatus (1) google (1) Google Maps API (2) grep (1) Grub (1) HR (2) html (23) HTS (8) IE (1) IE 8 (1) IIS (1) IMAP (3) Internet Explorer (1) java (4) JavaScript (22) jQuery (6) JSON (1) K3b (1) ldd (1) LED (3) Linux (119) Linux Mint (4) Load Balance (1) Microsoft (2) MIS (2) MM (51) MSSQL (1) MySQL (27) Network (1) NFS (1) Office (1) OpenSSL (1) Oracle (127) Outlook (3) PDF (6) Perl (60) PHP (33) PL/SQL (1) PL/SQL Developer (1) PM (3) Postfix (2) postfwd (1) PostgreSQL (1) PP (50) python (5) QM (1) Red Hat (4) Reporting Service (28) ruby (11) SAP (234) scp (1) SD (16) sed (1) Selenium (3) Selenium-WebDriver (5) shell (5) SQL (4) SQL server (8) sqlplus (1) SQuirreL SQL Client (1) SSH (3) SWOT (3) Symantec (2) T-SQL (7) Tera Term (2) tip (1) tiptop (24) Tomcat (6) Trouble Shooting (1) Tuning (5) Ubuntu (37) ufw (1) utf-8 (1) VIM (11) Virtual Machine (2) VirtualBox (1) vnc (3) Web Service (2) wget (1) Windows (19) Windows (1) WM (6) Xvfb (2) youtube (1) yum (2)

2015年5月6日 星期三

Oracle Flashback Technology

這次不小心把資料庫異動錯,幸好使用此feature將資料就回來,所以將此feature介紹如下

http://docs.oracle.com/cd/B28359_01/appdev.111/b28424/adfns_flashback.htm#BJFDJCJD
這次用到其中

Flashback Query

以下有講如何config,如何使用
http://oracle-base.com/articles/9i/flashback-query.php

需要有

Automatic Undo Management

才能使用Flashback Query
以下講如何 config Automatic Undo Management
http://oracle-base.com/articles/9i/automatic-undo-management.php

 其中使用SQL:
SELECT oea01,oeaud02 FROM oea_file
  AS OF TIMESTAMP
   TO_TIMESTAMP('2015-05-07 12:00:00', 'YYYY-MM-DD HH:MI:SS')
 where oea01 like 'ASO7-1504%';
叫出當時未異動前的資料

2015年5月4日 星期一

How to send HTTP GET or POST request in Perl

http://xmodulo.com/how-to-send-http-get-or-post-request-in-perl.html

To install LWP on Ubuntu or Debian:
$ sudo apt-get install libwww-perl

To install LWP on CentOS, Fedora or RHEL:
$ sudo yum install perl-libwww-perl.noarch

HTTP GET Perl example

use LWP::UserAgent;

my $ua = LWP::UserAgent->new;

my $server_endpoint = "http://192.168.1.1:8000/service";

# set custom HTTP request header fields
my $req = HTTP::Request->new(GET => $server_endpoint);
$req->header('content-type' => 'application/json');
$req->header('x-auth-token' => 'kfksj48sdfj4jd9d');

my $resp = $ua->request($req);
if ($resp->is_success) {
    my $message = $resp->decoded_content;
    print "Received reply: $message\n";
}
else {
    print "HTTP GET error code: ", $resp->code, "\n";
    print "HTTP GET error message: ", $resp->message, "\n";
} 
 

HTTP POST Perl example

use LWP::UserAgent;

my $ua = LWP::UserAgent->new;

my $url = "http://192.168.1.1:8000/service";


my $resp = $ua->post( $url, { 'term' => $md5 } );


if ($resp->is_success) {
    my $message = $resp->decoded_content;
    print "Received reply: $message\n";
}
else {
    print "HTTP POST error code: ", $resp->code, "\n";
    print "HTTP POST error message: ", $resp->message, "\n";
}


 

2015年4月28日 星期二

在IE傳遞get參數中文遇到亂碼

方法一
https://www.peterdavehello.org/2013/10/%E5%9C%A8ie%E5%82%B3%E9%81%9Eget%E5%8F%83%E6%95%B8%E4%B8%AD%E6%96%87%E9%81%87%E5%88%B0%E4%BA%82%E7%A2%BC/

昨天被丟了一個問題:同一隻PHP程式在Chrome/Firefox丟中文參數沒問題, 在IE就會亂碼?
code大概長這樣, 主要是把傳入的參數存入db裡面, db用的是utf-8的編碼
<!php
$con = mysql_connect("127.0.0.1","id","pw");
mysql_select_db("test", $con);
mysql_query("set names 'utf8'");
$msg = $_GET['msg'];
$sql = "INSERT INTO `db` . `table` (`column`) VALUES ('" . $msg . "')";
mysql_query($sql,$con);
mysql_close($con);
問題其實是出在IE傳遞參數時會以ANSI來編碼(即便網頁編碼是UTF-8), 自然會出現亂碼的問題, 基於現在UTF-8是主流, 所以可以在使用傳入的參數之前使用PHP內建的mb_detect_encoding做這樣的處理:
$encode = mb_detect_encoding($msg, array ("UTF-8", "BIG5", "GB2312"));
if ($encode && $encode != 'UTF-8') {
    $msg = iconv ( $encode, "UTF-8", $msg );
}
{ “UTF-8″, “BIG5″, “GB2312″ } 這段可以依序換成要被識別的編碼, 在編碼可以辨識(有被列入)且不是UTF-8的情況下會用PHP內建的iconv來做轉換的動作, 就可以解決這樣的問題啦~

方法二
http://www.tdes.chc.edu.tw/works/computer/study/internet/internet-02.htm

當您使用瀏覽器上網時,有時會發現無法瀏覽以中文名命名的網頁或者無法下載以中文命名的檔案,這跟使用微軟 Internet Explorer(簡稱IE)瀏覽器的設定有一點點的關係,按下以下的連結測試一下吧!
按下上述的連結會另開新的瀏覽視窗,如果您可以看到裡面的內容,則不用進行以下設定;如果您所看到的是很抱歉!找不到這個網頁……,請您進行以下的設定操作:
如果您的作業系統是 Windows XP,預設是無法瀏覽以中文名命名的網頁及無法下載以中文命名的檔案,所以請點選上述的網址進行測試與操作。
(1) 開啟 瀏覽器 按下功能表上的 [工具] → [網際網路選項]

(2) 點選 進階 
(3) 永遠將 URL 傳送成 UTF-8 ,不要打勾
(4) 按下確定鈕。
 

 
以上的設定完畢後,將瀏覽器關閉後再重新開啟瀏覽器,應該就可以瀏覽以中文命名的網頁內容了。

2015年4月23日 星期四

tiptop 表格cell 動態指定顏色

http://www.bkjia.com/HTML5/477324.html

使用测试系统TIPTOP GP3.0
颜色的设置分为单身颜色和单头颜色的设置:
一、单身颜色:
1.首先MAIN函数之前定义一个数组
例如:
[html]
DEFINE ga_color     DYNAMIC ARRAY OF RECORD
        c01   STRING,c02   STRING,
        c03   STRING,c04   STRING,
        c05   STRING,c06   STRING,
        c07   STRING,c08   STRING,
        c09   STRING,c10   STRING,
        c11   STRING,c12   STRING
     END RECORD
2._bp(p_ud) 函数里面:
##setCellAttributes( attarr ARRAY OF RECORD )
##Defines decoration attributes for each cell. (定义每个单元格的属性)
  BEFORE DISPLAY   ##显示之前设置属性
    CALL DIALOG.setCellAttributes(ga_color)
3._fill函数里面
  首先 CALL ga_color.clear()   #清空
  然后 FOREACH 里面 判断并赋值(可以对多个栏位,也可以是某一个栏位)
[html]
IF g_ta_gja[g_cnt].tc_gja10 >5 AND g_ta_gja[g_cnt].tc_gja10<10 THEN 
   LET ga_color[g_cnt].c01 =""
   LET ga_color[g_cnt].c02 =""
   LET ga_color[g_cnt].c03 =""
   LET ga_color[g_cnt].c04 =""
   LET ga_color[g_cnt].c05 =""
   LET ga_color[g_cnt].c06 =""
   LET ga_color[g_cnt].c07 =""
   LET ga_color[g_cnt].c08 =""
   LET ga_color[g_cnt].c09 =""
   LET ga_color[g_cnt].c10 ="red"
    LET ga_color[g_cnt].c11 =""
    LET ga_color[g_cnt].c12 =""
 ELSE IF g_ta_gja[g_cnt].tc_gja10>10 THEN
   LET ga_color[g_cnt].c01 =""
   LET ga_color[g_cnt].c02 =""
   LET ga_color[g_cnt].c03 =""
   LET ga_color[g_cnt].c04 =""
   LET ga_color[g_cnt].c05 =""
   LET ga_color[g_cnt].c06 =""
   LET ga_color[g_cnt].c07 =""
   LET ga_color[g_cnt].c08 =""
   LET ga_color[g_cnt].c09 =""
   LET ga_color[g_cnt].c10 ="blue"
    LET ga_color[g_cnt].c11 =""
    LET ga_color[g_cnt].c12 =""
ELSE
   LET ga_color[g_cnt].c01 =""
   LET ga_color[g_cnt].c02 =""
   LET ga_color[g_cnt].c03 =""
   LET ga_color[g_cnt].c04 =""
   LET ga_color[g_cnt].c05 =""
   LET ga_color[g_cnt].c06 =""
   LET ga_color[g_cnt].c07 =""
   LET ga_color[g_cnt].c08 =""
   LET ga_color[g_cnt].c09 =""
   LET ga_color[g_cnt].c10 ="green blod"
    LET ga_color[g_cnt].c11 =""
    LET ga_color[g_cnt].c12 =""
 END IF 
 END IF
效果图如下图片:
 

二、单头颜色:
1.可以直接在画面档(per档)或者4gl档里面设置颜色
例如:
<1>【per档设置】gja02 = gja02,COLOR=GREEN;(color)
<2>【per档设置】ima26 = ima26,COLOR = RED WHERE ima26>1000;
<3>【per档设置】DATEEDIT  tc_gja03 = tc_gja03,COLOR=GREEN,REVERSE;
<4>【4gl档设置】DISPLAY p_ima01 TO ima01 ATTRIBUTE(BOLD,GREEN)
<5>【4gl档设置】DISPLAY BY NAME g_ima.*  ATTRIBUTE(REVERSE,BOLD,GREEN)
<6>【4gl档设置】CALL cl_set_comp_font_color("ima01,ima02a","RED")
<7>【per档设置】GRID (fontpitch=FIXED)
fontpitch:这个属性定义字符的字体类型作为固定或变量在使用默认字体。
COLOR:
【用途】
The COLOR attribute defines the foreground color of the text displayed by a form element.
【说明】
1.color-name can be: BLACK, BLUE, CYAN, GREEN, MAGENTA, RED, WHITE, and YELLOW.
2.For backward compatibility, color-name can be combined with an intensity keyword: REVERSE, LEFT, BLINK, and UNDERLINE.
COLOR  WHERE :
【用途】
The COLOR WHERE attribute defines a condition to set the foreground color dynamically.
【说明】
1.color-name can be: BLACK, BLUE, CYAN, GREEN, MAGENTA, RED, WHITE, and YELLOW.
2.color-name can also be an intensity keyword: REVERSE, LEFT, BLINK, and UNDERLINE.
3.boolexpr defines a Boolean expression with a restricted syntax.
4.The Boolean expression is automatically evaluated at runtime to check when the color attribute must be set.
效果图如下几张图片:
 
 

2015年4月7日 星期二

Reporting Service Execution History Log

/****** SSMS 中 SelectTopNRows 命令的指令碼  ******/
SELECT [TimeStart],replace([UserName],'WIN2K3SRVSQL\','') UserName,Name,[Parameters]
  FROM [ReportServer].[dbo].[ExecutionLogStorage],[ReportServer].[dbo].Catalog
 WHERE UserName not like '%Administrator%'
   AND ReportID = ItemID
 ORDER BY 1 DESC

2015年3月24日 星期二

在 Windows 7 上安裝 Apache + PHP + PostgreSQL

http://yuanfarn.blogspot.tw/2013/06/windows-7-apache-php-postgresql.html

前幾天寫了篇 "在 Debian 上安裝 Apache + PHP + PostgreSQL"。這兩天突然想到,也許有些讀者只是單純想試試 Apache 和 PostgreSQL,於是乾脆也在自己的 Windows 7 上來試試如何安裝 Apache + PHP + PostgreSQL 了。
其實,在 Windows 7 上安裝也非常簡單,其中 Apache 和 PHP 只是將下載回來的壓縮檔解開,然後修改幾個設定即可。
安裝 Apache HTTP Server
Apache 目前最新的版本為 2.4.4,不過讀者可能會發現在 Apache 的網站 http://httpd.apache.org/ 上找不到 Windows 版的安裝程式,必須在 Apache Lounge (http://www.apachelounge.com/) 下載 Windows 的版本。
下載取得 httpd-2.4.4-win32.zip 這個檔案,然後將它解壓縮到 C:\,基本上會得到 C:\Apache24 這個目錄。
安裝 PHP
從 PHP 的網站 http://php.net/ 下載取得 PHP 5.4 (5.4.16) 的 VC9 x86 Thread Safe 版本,將它解壓縮並變更目錄名稱為 C:\php。
設定 Apache HTTP Server 與 PHP
從 PHP 5.4.10 這個版本之後,基本的設定如下:
首先編輯 C:\Apache24\conf\httpd.conf 這個檔案,然後加入以下幾行:
LoadModule php5_module "c:/php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
# configure the path to php.ini
PHPIniDir "C:/php"
接著找到 Directory index 的設定,並加入 index.php 這項:
DirectoryIndex index.html index.php
向 Windows 註冊 Apache HTTP Server
以系統管理員的身份執行命令提示字元 (Command prompt),然後執行以下這行:
C:\apache24\bin\httpd -k install
接著再執行將它指定為手動啟動:
sc config Apache2.4 start= demand
不過通常我會將 demand 改成 auto,讓 Apache HTTP Server 自動啟動。
最後,將 C:\Apache24、C:\Apache24\bin 及 C:\PHP 這幾個路徑加到環境變數的 PATH 裡。
修改 PHP 的設定
在 C:\PHP 找到 php.ini-development 這個檔案,複製一份並更名為 php.ini,然後修改如下:
; Directory in which the loadable extensions (modules) reside.
; http://php.net/extension-dir
; extension_dir = "./"
; On windows:
extension_dir = "ext"

extension=php_pgsql.dll
基本上,要取消 PostgreSQL 這個 DLL extension 的註解。此外,也可以再取消幾個 extension 的註解,如下:
extension=php_bz2.dll
extension=php_fileinfo.dll
extension=php_gd2.dll
extension=php_gettext.dll
extension=php_gmp.dll
extension=php_mbstring.dll
命令提示字元 (Command prompt),執行以下這行確認載入的模組:
php -m
到這裡,基本上已經完成 Apache HTTP Server 與 PHP 的設定了,可以在 C:\Apache24\htdocs 編輯一個 info.php,填入以下內容:
<?php
phpinfo();
?>
然後,用瀏覽器開啟 http://localhost/info.php 查看。
安裝 PostgreSQL
從 PostgreSQL 的網站 http://www.postgresql.org/ 下載 Windows 版的安裝程式。根據網頁上的說明,將從 EnterpriseDB 的網站取得 9.2.4 版的安裝程式。
雙擊下載回來的 postgresql-9.2.4-1-windows.exe 安裝,並變更目錄到 C:\。因此,安裝完成會得到 C:\PostgreSQL\9.2 這個目錄。
在安裝過程依照說明設定資料庫管理員的密碼。
Windows 版本的 PostgreSQL 安裝程式會一併安裝圖形化的管理工具 pgAdmin III,在安裝後就可以直接用它來管理 PostgreSQL 了。

2015年3月22日 星期日

PHP上傳檔案,透過 PHP $_FILES 陣列輕鬆上傳檔案

http://www.webtech.tw/info.php?tid=24
http://gdsecret.com/post.php?id=15

php.ini設定

上傳檔案前總要做些設定吧,以下列出幾個設定供參考:
  1. file_uploads:檔案上傳 ,設為 On (允許上傳)
  2. upload_max_filesize:上傳最大檔案大小,預設 2M ,建議不要太大
  3. max_execution_time:最大程式執行時間,預設為 30 秒
  4. max_input_time:接收資料時間限制,建議比 max_execution_time 大
  5. memory _limit:最大記憶體,必須比 upload_max_filesize 大,檔案上傳才不會出錯
  6. post_max_size:POST資料量限制,預設 8M,必須比 upload_max_filesize 大

上傳檔案對 PHP 來說是個相當重要的功能,PHP 可以上傳各式各樣的檔案類型,像是文件檔 word 的 .doc、Excel 的 .xls、PowerPoint 的 .ppt、PDF、exe、影片檔案如 avi、rmvb、flv .... 圖片檔案類型等等。

上傳檔案最基本的架構有三個重點:
  1. 上傳頁面(HTML)
  2. 處理檔案(PHP)
  3. 儲存上傳檔案的資料夾
步驟一、先利用 HTML 建立一個簡單的上傳檔案頁面

這個頁面是要給上傳檔案的人看的,必須包含表單(form)、上傳檔案的欄位以及一個上傳按鈕。


開啟程式碼頁面

注 意表單 form 需要加上 enctype="multipart/form-data" 代表你要上傳檔案,input type="file" 這裡是上傳檔案的欄位。PHP 一次可以上傳多個檔案,這裡介紹單一檔案上傳,順利完成單一檔案上傳後,也可以嘗試看看多檔案上傳唷!

步驟二、建立一個資料夾來裝上傳的檔案

PHP 檔案上傳後會先放到一個暫存資料夾(tmp),再用 move_uploaded_file 將檔案移動到你的網站資料夾中,所以你必須建立好一個放檔案的資料夾在網站根目錄,我們暫時將這個資料夾命名為 upload。記得權限要設為可以寫入才能夠使用唷!通常預設是可以寫入,如果你待會上傳的檔案沒辦法寫入,就必須改一下資料夾權限。

步驟三、建立處理上傳檔案的 PHP 檔案 upload.php

在寫程式碼之前需要先了解 PHP 怎麼判斷檔案的各種數據
  • $_FILES["file"]["name"]:上傳檔案的原始名稱。
  • $_FILES["file"]["type"]:上傳的檔案類型。
  • $_FILES["file"]["size"]:上傳的檔案原始大小。
  • $_FILES["file"]["tmp_name"]:上傳檔案後的暫存資料夾位置。
  • $_FILES["file"]["error"]:如果檔案上傳有錯誤,可以顯示錯誤代碼。
現在你了解了 PHP 如何判斷檔案上傳後的資料,接著就可以運用這些資料去做檔案上傳的功能囉!以下是檔案上傳的基本架構,你可以先透過這個架構看看檔案是否有問題,若有碰到什麼問題可以在這個階段先處理好。


開啟程式碼頁面

如果都沒有問題的話,接著我們開始加入「移動檔案到資料夾」的動作,此動作相當的重要,主要是將剛剛上傳到伺服器暫存資料夾的檔案正式移動到你的網站目錄底下,如此一來網友才看得到。

移動檔案請用 move_uploaded_file()

move_uploaded_file($_FILES["file"]["tmp_name"],"upload/".$_FILES["file"]["name"]);

將此 function 加到我們的程式碼中


開啟程式碼頁面

現在你已經可以將檔案上傳並順利移動到你的資料夾中囉!但是這樣其實並不完整,我們應該再加入檔案是否存在的判斷,避免有時候一個不小心重覆上傳相同的檔案,這裡可以採用 PHP 的 file_exists() 函式來判斷。


開啟程式碼頁面

相關連結