Archive

‘專業技術’ 分類過的Archive

Mysql INSERT … SELECT 太舊版不支援

2012年9月12日 尚無評論

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;
不能指定欄位
Categories: Database Tags:

PHP ini_set 可設定之項目

2012年7月13日 尚無評論

PHP有提供ini_set() 函式 可以在程式之中動態調整相關系統參數,有時一些虛擬平台不能讓你去設定參數時
或是你可以設定程式是否要動態啟用debug display時 就可以用這個方法去調整
不過要注意,並不是所有的參數設定都適用
目前只有 Changeable 欄位為 PHP_INI_USER 或 PHP_INI_ALL 才可以接受 ini_set() 設定。

http://tw.php.net/manual/en/ini.list.php

Categories: PHP Tags:

Android SQLite更新資料庫作法

2012年7月7日 尚無評論

這次在先前製作的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

Categories: Android Tags: , ,

Debug Certificate expired..Unknown Android Packaging Problem 解決辦法

2012年7月1日 尚無評論

在執行有一陣子沒弄的android專案時,發現出現了一個怪Error

Error generating final archive: Debug Certificate expired on 12-07-01 上午11:27 Test Unknown Android Packaging Problem

真是奇怪,怎麼高訴我測試的憑證過期了呢? 重新Build 只要執行時就還是一樣會出錯

去查了一下,有看到Google官方有解決辦法:

To fix this problem, simply delete the debug.keystore file. The default storage location for AVDs is in ~/.android/avd on OS X and Linux, in C:\Documents and Settings\\.android\ on Windows XP, and in C:\Users\\.android\ on Windows Vista.

The next time you build, the build tools will regenerate a new keystore and debug key

所以到了C:\Documents and Settings\Administrator\.android資料夾下把debug.keystore檔除後,然後重新build一下獲取新的debug.keystore。這樣新建專案執行時就正常了。

為啥會發生了…狀況不明,看來是太久沒寫android,要你常寫才可以啦~XD

Categories: Android Tags: ,

如何設定CSS只適用於IE使用

2012年6月26日 尚無評論

IE真的很煩,往往不同的版本CSS的效果都不太一樣,這次遇到是IE7以前的不合用

所以為了要向下相容,所以必須針對IE6 IE7 進行特別的CSS stylesheet的設定

印象中以前就看過,所以沒有花很久的時間就找到需要的資訊,試用一下~合用的呢~^^
這文章裡面有蠻多為了IE相容而彈性的參數設定,寫下來給自己以後參考一下:

只給IE瀏覽器使用

<!–[if IE]>
<link rel=”stylesheet” type=”text/css” href=”all-ie-only.css” />
<![endif]–>

只不給IE瀏覽器使用

<!–[if !IE]><!–>
<link rel=“stylesheet” type=“text/css” href=“not-ie.css” />
<!–<![endif]–>

只給IE 7瀏覽器使用

<!–[if IE 7]>
<link rel=”stylesheet” type=”text/css” href=”ie7.css”>
<![endif]–>

只給IE 6瀏覽器使用

<!–[if IE 6]>
<link rel=”stylesheet” type=”text/css” href=”ie6.css” />
<![endif]–>

只給IE 5瀏覽器使用

<!–[if IE 5]>
<link rel=”stylesheet” type=”text/css” href=”ie5.css” />
<![endif]–>

只給IE 5.5瀏覽器使用

<!–[if IE 5.5000]>
<link rel=”stylesheet” type=”text/css” href=”ie55.css” />
<![endif]–>

只給IE 7以下的瀏覽器使用

<!–[if lte IE 7]>
<link rel=”stylesheet” type=”text/css” href=”ie6-and-down.css” />
<![endif]–>

把lte ->lt 就變成IE7 前的版本適用(不含IE7) ,反之如果要IE7以上的就改成 gte 即可

 

上述是整個CSS檔案去判斷要不要使用,而我們也可以在CSS檔裡針對各stylesheet 去限定只適用於哪個IE瀏覽器版本

限IE6瀏覽器使用

* html #div {
height
: 300px;
}

限IE7瀏覽器使用

*+html #div {
height
: 300px;
}

限IE8瀏覽器使用

#div {
height
: 300px \0/;
}

限IE7 & IE8瀏覽器使用

#div {
height
: 300px\9;
}

IE7瀏覽器不能使用

#div {
_
height
: 300px;
}

IE6瀏覽器以下不能使用

#div {
height/**/:300px; 

 

html > body
#div {
height:300px;
}

結尾…..

為啥微軟不好好走正確的路線呢~~有時間加上這些相容的參數,卻不安份的走歪路~真討厭

參考資料:http://css-tricks.com/how-to-create-an-ie-only-stylesheet/

Categories: WebDesign Tags: ,
分頁: 上一頁 1 2 3 4 5 6 7 8 9 10 ... 26 27 28 下一頁