2009年8月26日 星期三

sqlserver 2005 取得 @@identity




2005 :
sql = "Insert into tr_mem_comid_tab (" &_
" memsn, cname, dname, cardid, empid, email" &_
", uid, ctime, uid_ref" &_
") output inserted.csn Values(" &_
memsn &_
", '" & fm.Item("cname") & "'" &_
", '" & fm.Item("dname") & "'" &_
", '" & fm.Item("cardid") & "'" &_
", '" & fm.Item("empid") & "'" &_
", '" & fm.Item("email") & "'" &_
", 'WEB'" &_
", getdate()" &_
", '" & Session("myip") & "'" &_
")"
sql = "delete from tr_mem_comid_tab" &_
" output deleted.cardid where csn=" & csn

2009年8月25日 星期二

設計資料表欄位,留意『現在式狀態』『過去式歷程』兩種類型的資料表

設計資料表欄位,或進行資料表參照時,要留意『現在式狀態』『過去式歷程』兩種類型的資料表 因為,這兩類型的資料有時是不能參照的, 例如:通訊錄 vs 郵寄歷程 乍看之下,郵寄歷程的發送對象,可參照通訊錄中的鍵值; 但隨者時間的前進,通訊錄是有可能異動或更新的,此時,郵寄歷程所參照出來的資料,將會不正確。

2009年8月21日 星期五

NULL害死人不償命

NULL 值是不能比較,或與任何值相加減的~



很小的程式、很簡單的問題,卻禍不單行,煮成大雜燴包,這難吃的包,還是得往肚裡吞,不然就回家食自己~ (當廚餘丟掉的話~)

2009年8月17日 星期一

奇怪的是,Gmail 收到,但 Hinet 就是收不到~

開發人員反應,說他的郵件一直不能寄給特定的信箱(郵件主機)
於是我就請他分別寄給我 Hinet 和 Gmail 兩個信箱..
奇怪的是,Gmail 收到,但 Hinet 就是收不到~

幾經測試與查察,終於發現原因:
  • 原因在於 寄件者所宣稱的網域名稱不存在,
  • 推測Hinet有利用網域名稱反查的機制,
  • 因此,該封測試郵件被丟棄於無形。

這讓我想到,以前處理過的一案例, 曾有人因modem無法撥接成功,求助於我, 我於現場查看設備燈號,一切皆正常,因此,認定是modem的問題而送修。 送修時,店員拿出新品,要換貨時,赫然發現,送修的Adapter和Modem並非同一組設備,此時,真相才終於大白。

使用者誤插其它設備的Adapter,因電壓不符,而使Modem無法運作!

事後看來,這些問題,是再芝麻也不過,不過,卻依然隨機起舞,耗費不少時間!

2009年8月13日 星期四

希望在 select 出的資料上,自動加上流水號


為了讓同一批次insert into表格的資料,有獨立的流水號

希望在 select 出的資料上,自動加上流水號



<1> 嘗試在select 子句上,看有無參數可達成如是效果,查無!

<2> 採Cursor 方式,是最直覺的解決方案,不過擔心效能不彰!

<3> 最後,採select ....into #tmptab 的方式,
'sn'=identity(int,1,1) 來產生流水號,最後再append至正式表格
當 SELECT 陳述式中有 INTO 子句時,才能使用 IDENTITY 函數。

2009年8月5日 星期三

word 自動把第一個字母變成大寫 ><

MS WORD 有時太自動自發,也很困擾,總算找到可讓它不自動的選項了
關鍵字:工具->自動校正