一般來說,Mysql的table出問題了,我們就會使用下面的SQL指令將它修復:
REPAIR TABLE tbl_name
但是如果這個指令還是修不好呢?表示這個Table的Index檔徹底損毀了,這時候就必須利用資料檔將索引檔重建。聽起來似乎很複雜,執行卻是非常簡單,只要使用下面的SQL指令即可:
REPAIR TABLE tbl_name USE_FRM
2010年12月4日 星期六
2010年12月3日 星期五
VB製作網頁用ActiveX容易發生的問題紀錄
用VB製作網頁用的ActiveX,明明一切都正確,為什麼編譯打包出來的CAB檔在WEB上就是不能正確下載安裝,更離奇的是Win7的IE8可以,WinXP的IE8就不行,原來關鍵的問題在這裡:
有兩個在打包ActiveX用的檔案不能用太新的版本,所以建議下載這兩個舊版的來使用:
asycfilt.dll 版本:5.1.2600.5949 檔案大小:65,536 位元組
msvbvm60.dll 版本:6.0.98.2 檔案大小:1,384,479 位元組
將這兩個檔案下載下來覆蓋到c:\windows\system32中,再重新打包應該就可以了,若是還不行,就試試再執行下面的步驟吧:
1.進入專案的屬性設定:
有兩個在打包ActiveX用的檔案不能用太新的版本,所以建議下載這兩個舊版的來使用:
asycfilt.dll 版本:5.1.2600.5949 檔案大小:65,536 位元組
msvbvm60.dll 版本:6.0.98.2 檔案大小:1,384,479 位元組
將這兩個檔案下載下來覆蓋到c:\windows\system32中,再重新打包應該就可以了,若是還不行,就試試再執行下面的步驟吧:
1.進入專案的屬性設定:
2.選擇元件(Component)的頁籤;版本相容要使用Project的;這時候若是按下確定會有錯誤訊息,就利用...的按鈕去找到正確路徑,再按確定應該就可以了。
經過這樣的設定後再進行編譯、包裝後應該就沒問題了。
2010年11月11日 星期四
PHP產生Word報表
要用PHP產生word報表,我知道的有兩種方式。第一種是利用外部呼叫VBScript的方式產生真正的word檔案,但是這樣做有幾個缺點:
1.執行時要呼叫外部程式容易導致memory leak。
2.執行PHP的Server上必須安裝Office,換句話說,Linux不適用。
3.程式的撰寫與維護也比較不容易。
附上VBScript範例以及word範本,有興趣的人請自行參考。
PHP呼叫的方式如下:
system("wscript /e:vbscript wordreplace.vbs \"$deptname\" \"$name\" \"$date\" \"$sno\" \"$fileno\" \"$revno\" \"$content\" \"$filename\" \"file.doc\"");
現在介紹的重點是第二種方式,這就要拜現在Office越來越強大之賜,Word或是Excel都支援HTML語法了,說不定PowerPoint也行,留給需要的人自己去測試囉!
言歸正傳,所以我們只要能產生出附檔名為DOC的HTML報表,就是一種變通的word報表了阿!
我的做法通常如下:
1.先用Office製作一個報表範本檔,儲存時存成HTML格式,但是附檔名用DOC。
2.寫PHP的程式將範本檔讀進來,然後把資料用str_replace替換掉。再存成自己要的檔案。
3.將檔案送出到瀏覽器給使用者:header("location:./$mywordfile.doc"); <-不是必要的!
一頁的表格通常這樣就沒問題了,若是不確定頁數的多頁報表,可以先把範本檔做個兩三頁,然後用文字編輯器(例如ultraedit、Editplus,當然你喜歡用記事本也行),把檔案切割成header、body、footer三個部分。PHP中寫檔的開始先把header寫進去,再利用迴圈寫上多頁的body,最後再把footer寫進去。記住body要在最後插入一個換頁的分隔符號,這樣做出來的報表跳頁時就不會有問題了。
以下為各個檔案的範例下載:
Header範本
Body範本
Footer範本
PHP範本 (請使用按滑鼠右鍵另存目標的方式即可正常下載)
1.執行時要呼叫外部程式容易導致memory leak。
2.執行PHP的Server上必須安裝Office,換句話說,Linux不適用。
3.程式的撰寫與維護也比較不容易。
附上VBScript範例以及word範本,有興趣的人請自行參考。
PHP呼叫的方式如下:
system("wscript /e:vbscript wordreplace.vbs \"$deptname\" \"$name\" \"$date\" \"$sno\" \"$fileno\" \"$revno\" \"$content\" \"$filename\" \"file.doc\"");
現在介紹的重點是第二種方式,這就要拜現在Office越來越強大之賜,Word或是Excel都支援HTML語法了,說不定PowerPoint也行,留給需要的人自己去測試囉!
言歸正傳,所以我們只要能產生出附檔名為DOC的HTML報表,就是一種變通的word報表了阿!
我的做法通常如下:
1.先用Office製作一個報表範本檔,儲存時存成HTML格式,但是附檔名用DOC。
2.寫PHP的程式將範本檔讀進來,然後把資料用str_replace替換掉。再存成自己要的檔案。
3.將檔案送出到瀏覽器給使用者:header("location:./$mywordfile.doc"); <-不是必要的!
一頁的表格通常這樣就沒問題了,若是不確定頁數的多頁報表,可以先把範本檔做個兩三頁,然後用文字編輯器(例如ultraedit、Editplus,當然你喜歡用記事本也行),把檔案切割成header、body、footer三個部分。PHP中寫檔的開始先把header寫進去,再利用迴圈寫上多頁的body,最後再把footer寫進去。記住body要在最後插入一個換頁的分隔符號,這樣做出來的報表跳頁時就不會有問題了。
以下為各個檔案的範例下載:
Header範本
Body範本
Footer範本
PHP範本 (請使用按滑鼠右鍵另存目標的方式即可正常下載)
2010年11月10日 星期三
PHP連接MS SQL Server的問題解決
PHP連接MS SQL Server常常會碰到一些問題,每次遇到問題就上網找資料,弄了半天才搞定。現在把幾個要點整理出來,以後遇到問題時希望可以快速的解決。
錯誤訊息為mssql_connect() / mssql_pconnect() undifined:
1.php.ini中extension=php_mssql.dll前面的;拿掉。Apache重新啟動。
2.將c:\appserv\php5目錄中的ntwdblib.dll、libeay32.dll、ssleay32.dll覆蓋到c:\windows\system32;c:\appserv\apache2.2\bin,再重啟Apache。
3.下載ntwdblib.dll覆蓋到c:\windows\system32;c:\appserv\apache2.2\bin;,再重啟Apache。
錯誤訊息為connect失敗的:
1.遠端連接請注意防火牆問題,SQL Server的1433 Port要打開。
2.MS SQL 2000版本有可能要下載MS SQL2000 SP4安裝。
3.MSSQL的認證必須為SQL server及Windows混合。
MS SQL 2000版本的設定在Enterprise Manager中要改變的主機上按右鍵選內容裡面的安全性選項。
MS SQL 2005版本的設定在SQL Server Management Studio Express中要改變的主機上按右鍵選屬性裡面的安全性選項。
4.使用TCP/IP跟具名通道。設定方法如下:
MS SQL 2005版本:
MS SQL 2000版本的忘記在哪了,最好安裝時就選好,未來找到在上來補充。
如果上面方法都不行,請確定帳號,密碼跟資料庫名稱是否都有設對,權限是否有開好等等。
錯誤訊息為mssql_connect() / mssql_pconnect() undifined:
1.php.ini中extension=php_mssql.dll前面的;拿掉。Apache重新啟動。
2.將c:\appserv\php5目錄中的ntwdblib.dll、libeay32.dll、ssleay32.dll覆蓋到c:\windows\system32;c:\appserv\apache2.2\bin,再重啟Apache。
3.下載ntwdblib.dll覆蓋到c:\windows\system32;c:\appserv\apache2.2\bin;,再重啟Apache。
錯誤訊息為connect失敗的:
1.遠端連接請注意防火牆問題,SQL Server的1433 Port要打開。
2.MS SQL 2000版本有可能要下載MS SQL2000 SP4安裝。
3.MSSQL的認證必須為SQL server及Windows混合。
MS SQL 2000版本的設定在Enterprise Manager中要改變的主機上按右鍵選內容裡面的安全性選項。
MS SQL 2005版本的設定在SQL Server Management Studio Express中要改變的主機上按右鍵選屬性裡面的安全性選項。
4.使用TCP/IP跟具名通道。設定方法如下:
MS SQL 2005版本:
如果上面方法都不行,請確定帳號,密碼跟資料庫名稱是否都有設對,權限是否有開好等等。
2010年11月9日 星期二
Windows下的PHP環境架設懶人包
這邊介紹兩個非常好用的PHP環境架設懶人包:
一、Appserv:
包含了Apache、Mysql、PHP、phpMyadmin。可以說是標準版的懶人包,包含了最基本的軟體在裡面。
一、Appserv:
包含了Apache、Mysql、PHP、phpMyadmin。可以說是標準版的懶人包,包含了最基本的軟體在裡面。
包含了Zend optimizer的版本在此下載:
http://www.appservnetwork.com/modules.php?name=News&file=article&sid=35
http://www.appservnetwork.com/modules.php?name=News&file=article&sid=35
二、Xampp:
包含了Apache,MySQL,PHP,Perl,OpenSSL,phpMyAdmin,Mercury,FileZilla,SQLite。可以說是豪華版的懶人包,而且也內含了Zend optimizer。
補充一下,Xampp還有Linux的版本可以下載,但是我沒試過,不知道是不是跟Windows的版本一樣容易!
補充一下,Xampp還有Linux的版本可以下載,但是我沒試過,不知道是不是跟Windows的版本一樣容易!
訂閱:
文章 (Atom)