2010年11月23日 星期二

使用Firebird代替InterBase

Firebird是InterBase的Open Source專案,為什麼會有使用Firebird的需求呢?因為需要用到IBLocal資料庫,但是使用SQL Explorer卻發生找不到GDS32.DLL的錯誤,想知道除了安裝InterBase之外,是否有其他解決方法,網路上都推薦使用Firebird代替InterBase,抱著姑且一試的心態,重新啟動電腦後,輸入預設的密碼masterkey就可以使用。從SQL Explorer -> Object -> Version Information可以知道安裝之後多出GDS32.DLL,我想這就是可以使用的主要原因。

2010年11月22日 星期一

工程師的自我修養-協助面試

所謂「協助面試」是指提出一些問題,讓主管們藉由面試者的回答決定是否錄取面試者,通常能夠參加面試,算是主管對自己的肯定。
通常我會提出的問題,包含工作上曾經遭遇過的問題、履歷與自傳的問題、與工作需要具備專業的問題,我會把握每次面試的機會,和面試者進行經驗的分享,就算沒有機會當同事,至少透過這次面談累積自己的專業知識。

2010年11月19日 星期五

做球給其他的同事

有時候只是心情的問題而已,就會讓同事更願意幫我們的忙。這是我從B君身上學到的,有時他會詢問其他的同事,跟經理報告時他總是會說「還好C君剛才幫我的忙」類似的話,幫他忙的同事當然心情會好,以後他有問題時更願意全力協助。
當然做球給其他的同事,這是發至於內心的感動,在與主管報告時,可以在他面前感謝同事幾句,對同事而言,無意間聽到辦公室的耳語,會覺得同事值得幫忙;對自己而言,少了鋒芒畢露卻多了些謙虛。

2010年11月3日 星期三

工程師的自我修養-灌資料

向周星馳電影「喜劇之王」致敬,讓我看見什麼是敬業精神。
根據E君的說法,使用Excel整理需要匯入的資料,您整理的技術越好,後面需要花費的時間越少,所謂技術好就是會使用VLOOKUP或HLOOKUP整理成為代碼、資料剖析拆解資料、整理資料成為多個資料表、樞紐分析表剔除重複,使得左邊與上面的資料唯一,並且分析資料例如加總等、取消「合併儲存格」。
(感謝E君提供上述使用Excel整理資料的方法,並且感謝您這些日子以來的幫忙。)
VLOOKUP 函數

複製貼上:
根據E君的說法,SQL Server 2000的SQL Server Enterprise Manager不支援此功能。

使用OPENROWSET:
撰寫Transact-SQL協助匯入資料,必要時需要將查詢結果回寫至Excel。

DECLARE cursorXXX CURSOR FOR SELECT A,B,C,D,E FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0;HDR=Yes;IMEX=1;Database=C:\refTest.xls', 'SELECT * FROM [Sheet1$]')


使用SSIS(SQL Server Integration Services):
沒有用過,接近撰寫匯入程式,但是搭配GUI感覺上又比較簡單,擁有.NET Framework平台的支援,上述兩種方法只適用於偶而的需求,如果是經常性的需求,建議使用這個方式或是自行撰寫匯入程式。
dotNET 技術聖殿-部落格: SSIS功能體驗(一)、匯入EXCEL檔案

2010年11月2日 星期二

希望opener幫我們做一些事情

opener是指JavaScript的「window.opener」。
opener在我的理解是開啟子視窗的父視窗,會用到opener通常是我們在子視窗希望父視窗幫我們做一些事情,例如開啟子視窗進行編輯,希望關閉子視窗時同時能夠更新父視窗;或是開啟子視窗條列資料,按下子視窗的編輯後會關閉子視窗,父視窗會跳到資料編輯頁面。上述兩個功能很直覺就會想到用「window.opener.location.href」,但是在IE會有問題。
Object window.opener.location.href is malfunctioning in IE8
window.opener.location.href do not work with Win7 and IE8
我的解決方法是子視窗關閉前呼叫以下函數。

window.opener.execScript("__doPostBack('" + eventTarget + "', '" + eventArgument + "')", "JavaScript");

這個函數會呼叫父視窗執行__doPostBack(),此時在父視窗我們可以在Page_Load(),依據參數將頁面導到其他頁面。

如何轉移本機資料表的部份資料

有時候需要轉移部份資料至其他機器上面,懶得重新輸入就會用以下方法。
在SQL Server Management Studio Express。

  1. 「編輯」需要轉移的資料表

  2. 修改資料表名稱,我會將原本名稱後面加上Test成為一個新名稱。

  3. 「執行」


產生這個資料表的目的是為了保留需要的資料。

USE ABCDB
INSERT INTO ABCTest SELECT * FROM ABC WHERE Code = '05' OR Code = '06'

最後使用Microsoft SQL Server Database Publishing Wizard匯出成為SQL檔案,注意匯出之後請務必檢查有沒有DROP或DELETE指令。