當開開心心出遊回來,最討厭的就是要整理拍好的照片,因為拜科技之賜,現在出遊都會拍又多又大的照片及影片回家,但這次才發覺這不是最討厭的,原來還有更討厭的事情,就是插入記憶卡後看到以下畫面:
什麼,還問我是否要格式化,天呀~不會吧! 我玩數位相機也有十多年了沒想到竟然讓我也遇到了…唉
再重新抽拔記憶卡及放回去相機一看,都沒還是一樣,真是怪,在相機看相片時都還正常,怎麼插到電腦上就出問題了
正在懊惱的同時,已經開始google 如何救我的照片了~怪不得有些專業級的玩家會買沒有很大的記憶卡分散存放保險一下,這下真的好擔心照片全都不見,這時要提醒一下,千萬不要照著做了格式化,以免讓救援的動作更加困難。
以前就看過有救援的程式,google 一下不難找,看來蠻多人都當過受害者,而且救回的機率很高,所以看來不用太緊張,不過真擔心損毀到我覺得不錯的相片就糟糕了
比較了幾套救源程式包含SanDisk RescurePRO, Digital Image Recovery,FinalData (這套以前有拿來救過被刪除掉的檔案,可惜印象不好,因為沒救到想救的=.=||),其它SanDisk RescurePRO的評價好像算最好的,所以當然就拿它來試試看囉!
用法比想像中簡單許多,執行後就按下相片影像
然後就是選擇你記憶卡的位置
按開始後就開始忙碌的救相片囉,以我這張4G的CF卡為例,約花上30~40分鐘左右才完成作業,而結果…ha ha ha 看到沒
大多都救回來了,原本拍了四百張左右,結果救回來近五百張呢~因為有些是先前刪除掉的照片也一併救回來囉!!
當然一看到檔案時,看來只有兩張救不回來,因為我都是拍raw檔,結果救回來變成的jpg ….而且也很怪,不過這樣的結果是可以接受的至少不是全都不見了
最後,雖然看到檔案都回來了,但還是有部份RAW檔是損毀的,用DDP去開結果打不開或是一打開時裡面的相片是亂掉的,不過還好數量不多,應該只有5~10張左右,這樣救回的成功率高達98~99%呢..不過本來記憶卡都是好好的,不知為啥就壞了,這下之後拍照可能會有陰影,看來是不是又該去買張新的記憶卡了..^^||
Insert Select 的語法,不太常用,但要使用時沒有作用就覺得很討厭,在一個蠻舊版的Mysql上,臨時有這個需求才發現顯示了原來這個語法在舊版本Mysql是不支援的。
在以下的連結有人就有說到在4.1.6後的版本就都可以用了….可惡!! 我的版本是4.0.16…無言!
http://dev.mysql.com/doc/refman/5.0/en/insert-select.html
This refers to mysql 4.1.6 and later versions for sure.
既然不能用,只好用土法練鋼法,當要新增大量資料時,可以使用EXCEL 來進行產生SQL檔(如果你有一些mysql 工具就不用這麼克難了,我是在執行的環境沒有才出此下策),怎麼產生呢?
利用excel 寫好insert 指令,把各值放到其它的欄位,這樣就可以整行COPY 過來產生SQL 語法,如下圖:
這邊要記住,在excel 的欄位如果字首要有單引號出現,就要輸入兩個單引號才會出現
好,當完成後就可以COPY 貼到文字檔,這時還要做一個動作,就是置換TAB
因為COPY 過來的insert 指令各欄位之間會用TAB符號區隔,這樣是不合用的
所以再把TAB符號換成空字串就完工了!!
備註: 9/20 update
後來經測試,好像4.0.16的版本是可以支援insert select 的,不過能支援的語法比較單純,就是只能
insert into newtable select * from oldtable;
不能指定欄位
最近發現Facebook裡的有些應用程式,都會偷偷用你個人的名義發佈訊息並貼在你的塗鴉牆上,雖然都是自己授權它可以做,但往往大多數的人都一樣不會去管授權了什麼,呵~我就是其中之一 =.=||
找了一下,發覺其實要調整還蠻簡單的
1.首先,在右上方的首頁一旁有個向下的箭頭,按下後於出現的浮動選單之中,點選帳號設定
2.在左方的選單,選擇應用程式
3.可以於列表之中,刪除你想要的應用程式也可以
或是點選該應用程式編輯連結,則會出現詳細的資訊,可也以調整當初授權的各項設定,如下圖!
PHP有提供ini_set() 函式 可以在程式之中動態調整相關系統參數,有時一些虛擬平台不能讓你去設定參數時
或是你可以設定程式是否要動態啟用debug display時 就可以用這個方法去調整
不過要注意,並不是所有的參數設定都適用
目前只有 Changeable 欄位為 PHP_INI_USER 或 PHP_INI_ALL 才可以接受 ini_set() 設定。
http://tw.php.net/manual/en/ini.list.php
這次在先前製作的Android Apps 有需要進行SQLite資料庫的更新
以為系統能完美的自動更新~XD 但看來還是沒有想像中的聰明
這兩年新的技術及資訊一直出來,讓我覺得似乎什麼都好像已經包好似的
好~轉正題,當SQLite資料庫要更新時該怎麼做呢?
其實Android早就有想到了(其實也規劃的不錯啦)
首先,在你實作連結SQLite的物件之中有個版本號,當你有異動時就往後加一,就和Apps要更版一樣要加版本號
pubilc class DatabaseHelper extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
再來繼承SQLiteOpenHelper後,它提供了二個metohd,onCreate & onUpgrade 可以實作,我就擷錄人家寫的一段話來介紹這兩個method:
public void onCreate(SQLiteDatabase db)
這裡面的onCreate是指資料庫onCreate時,而不是DatabaseHelper的onCreate。也就是說,如果已經指定 database已經存在,那麼在重新運行程序的時候,就不會執行這個方法了。要不然,豈不是每次重新啟動程序都要重新建立一次資料庫了!在這個方法中,完成了資料庫的建立工作。也就是那個execSQL()方法。
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
在程序的開發維護過程中,資料庫的結構可能會有變化,那麼這個方法就有用處了。在DatabaseHelper這個對象一建立時,就已經把參數 DATABASE_VERSION傳入,這樣,如果Android發現此版本與現有版本不一致,就會調用這個onUpgrate方法。於是,可以在這裡面實現一些數據的upgrade工作,比如說建立一個臨時表,將數據由臨時表中轉到新的表結構中。需要注意的是,這裡面的onUpgrade是在版本不一致時調用,也就是說不管當前需要的版本高於現有版本還是低於現有版本,都會出發這個方法,類似的這種情況,就需要對oldVersion和 newVersion進行判斷之後再決定使用什麼策略來更新數據。
所以就把你要異動資料庫的script 寫在onUpgrade裡,還可以依照舊版本號及新的版本號看要執行哪些script,相容性的設計都考量進去了
這樣當上傳到android play(market)後,當有人下載更新時就會去執行更新的script了~^^
參考連結:http://www.cnblogs.com/linzheng/archive/2011/01/22/1942087.html
近期留言