星期二, 10月 05, 2010

ADOdb

PHP ADODB 1.99版手冊中文翻譯
http://www.souzz.net/online/adobd.html
http://www.php5.idv.tw/documents/ADODB/

介紹
http://big5.webasp.net/article/12/11341.htm
http://achi.idv.tw/ADOdb%20Database%20Abstraction%20Library-2046.html

入門
http://www.csie.nctu.edu.tw/
~tsaiwn/course/introcs/history/linux/linux.tnc.edu.tw/techdoc/adodb/book1.html

中文tip
http://achi.idv.tw/ADOdb%20Library%20for%20PHP%20Manual-2051.html

PHP 對 Oracle 的存取

http://lordcongou.spaces.live.com/blog/cns!1D956D3BF5A646D!180.entry

php oracle 函式庫 : http://php.chinaunix.net/manual/zh/ref.oci8.php

不過後來我用ADOdb 存取 Oracle

Oracle 安裝

在 Windows 上啟用 PHP OCI8 擴展
Instant Client 二進制文件是 PHP 的 Windows 預構建二進制文件的補充。
  1. 下載 PHP 二進制壓縮文件(不是安裝程序版本)和 Apache。按照 PHP 手冊中的 Windows 系統上的安裝安裝它們。OTN 的開放源代碼開發人員中心包含有用背景資料的鏈接,如「在 Windows 2000/XP 上安裝 Oracle、PHP 和 Apache」,它介紹了如何安裝傳統、完整的 Oracle 10g 版本(Instant Client 不需要此版本)。
    繼續操作之前檢查 PHP 是否正常運行。此階段未啟用 Oracle 支持。
  2. 從 OTN 的 Instant Client 頁面下載用於 Windows 的 Instant Client Basic 程序包。此壓縮文件的大小大約為 30MB。
  3. 創建一個子目錄(例如,c:\instantclient10_1),然後從壓縮文件中複製以下庫:
    • oraociei10.dll
    • orannzsbb10.dll
    • oci.dll
    這三個文件的總大小大約為 80MB。
    要使用 PHP 老版本的「oracle」擴展(在 php.ini 中使用「extension=php_oracle.dll」啟用),則複製 ociw32.dll 而非 oci.dll。
  4. 編輯此環境,將 c:\instantclient10_1 添加到 PATH 中(位於其他 Oracle 目錄之前)。
    例如,在 Windows 2000 上,依次單擊「開始」->「設置」->「控制面板」->「系統」->「高級」->「環境變量」,編輯系統變量列表中的 PATH。
    如果使用了 tnsnames.ora 文件定義 Oracle Net 服務名稱,則將 tnsnames.ora 複製到 c:\instantclient10_1,並將用戶環境變量 TNS_ADMIN 設置為 c:\instantclient10_1。也可以在用戶環境變量 LOCAL 中定義默認的服務名稱。
    設置必要的 Oracle 全球化語言環境變量,如 NLS_LANG。如果沒有設置,則使用默認的本地環境。有關更多詳細信息,請參見Oracle PHP 應用程序全球化概述
    無需設置不必要的 Oracle 變量,如 ORACLE_HOME 和 ORACLE_SID。
  5. 編輯 php.ini,並不要將 OCI8 擴展設為註釋:
    extension=php_oci8.dll
    
    將 extension_dir 指令設置為完整的 PHP 擴展 DLL 路徑。在 PHP 4 中,DLL 位於 PHP 軟件的「extensions」子目錄中。在 PHP 5 中,它們位於「ext」中。
  6. 重新啟動 Apache。
要檢查是否配置了擴展,請在 web 服務器可以讀取的地方創建一個簡單的 PHP 腳本。




<?php 
phpinfo();
?>

使用「http://」URL 將此腳本加載到瀏覽器中。瀏覽器頁面應包含一個顯示「OCI8 Support enabled」的「oci8」部分




參考至官網: http://www.oracle.com/technology/global/cn/pub/notes/technote_php_instant.html
其他參考:
http://a159874a.pixnet.net/blog/post/12647770
http://blog.ixpub.net/16565802/viewspace-364481

星期六, 10月 02, 2010

C#程式以系統管理員的身份執行 (UAC)

在Vista或win7中,執行一些會修改到系統的程式時,系統會向你要求管理權限,否則會執行失敗
C#預設則是使用目前的標準權限,所以執行一些指令就會因為權限不足失敗


參考一下MSDN上的說明:
在 Windows Vista 中,使用者的權限是由使用者帳戶控制項 (UAC) 決定。如果您是內建 Administrators 群組的成員,系統會將兩個執行階段存取語彙基元 (Token) 指派給您:標準使用者存取語彙基元及管理員存取語彙基元。根據預設,您會屬於標準使用者角色。若要執行會存取效能計數器的程式碼,您必須先將您的權限從標準使用者提高為系統管理員。您可以在啟動應用程式時進行這項處理,其方式是以滑鼠右鍵按一下應用程式圖示,並指出您想要以系統管理員的身份執行。


解決:
1.在應用程式中,加入一個【應用程式資訊清單檔案 / app.manifest】。
2.修改新加入的app.manifest內容,在requestedExecutionLevel中,把level 的值改為requireAdministrator。


1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="utf-8" ?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" >
  <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="someExecName" type="win32" />
  <description>Program description</description>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="requireAdministrator" />
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>


參考:
http://www.dotblogs.com.tw/jjnnykimo/archive/2009/05/08/8346.aspx
http://www.dotblogs.com.tw/dotnetfactory/archive/2008/12/01/6152.aspx

星期二, 9月 28, 2010

jquery 打字機效果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<script src='http://code.jquery.com/jquery-1.4.2.min.js'></script>
<script>
$(function(){
var str = $('#typewriter').text();
var i = 0;
var typing_inst = setInterval(typing, 100);
function typing()
{
    if(i < str.length -1)
    {
        $('#typewriter').text(str.substr(0,i) + "_");
        i++;
    }
    else if(i == str.length-1)
    {
        $('#typewriter').text(str);
        clearInterval(typing_inst);
    }
}
});
</script>
<div id='typewriter'>
嚕啦啦~嚕啦啦~嚕啦嚕啦咧~~
</div>


做成hta的話把jquery 直接貼進去比較快

星期二, 9月 21, 2010

Visual Studio 2010 C# bug :FileTracker : error FTK1011


這個bug在Project使用到Visual Studio裡面提供的資源resource功能(也就是專案中含有圖形介面的元件,例如windows form之類),而且該project實際路徑有包含非ASCII字元(如中文字的目錄)
解決方法:
  1. 在Windows系統新增一個環境變數名稱叫TRACKFILEACCESS,值為false。
  2. 把那個有問題的專案按右鍵選[Edit Project File],然後在那個開啟的.csproj檔案中,在所有的編譯配置的<PropertyGroup/>的節點內,新增<TrackFileAccess>false</TrackFileAccess>,存檔後重新載入該專案。
  3. 把專案使用的.net framework升級到.net 4.0。 http://zhidao.baidu.com/question/181188562.html?push=ql




星期日, 9月 19, 2010

找不到System.Management 內的 Class

想在C#內玩一下WMI,卻發現使用

1
using System.Management;

之後,還是沒辦法使用裡面的Class
什麼 ManagementBaseObject 、 ManagementObject 阿..都沒看見

查了一下資料,發現竟然還要另外加參考才可以 (什麼詭異設定)


1
2
3
1. 開啟方案總管
2. 選擇目前方案內的參考案右鍵 -> 加入參考
3. 把 System.Management 和 System.Management.Instrumentation 加進參考內


再次試試看,應該就可以了
仍然沒辦法的話,重開VC#並重複一次以上動作,應該就可以了

參考:http://stackoverflow.com/questions/2075391/managementbaseobject-not-found