blogspot.com-GA4

星期四, 6月 26, 2008

form.elements的使用問題

今天在使用第一種鎖定頁面中輸入方塊 text & textarea 的時候,在某些頁面可以正常執行,但某些頁面不知道是什麼原因,查不到錯誤只好在改成下面的第二種方式

第一種 鎖定 text & textarea
function lostate(){
for (var i = 0; i < savform.elements.length; i++) {
var element = savform.elements[i];
if (['input', 'select', 'textarea'].include(element.tagName.toLowerCase())){
alert(element.tagName.toLowerCase());
//element.blur();
element.disabled = 'false';
}
}
}

第二種 鎖定 text & textarea
function lostate(){
for (var i = 0; i < savform.elements.length; i++) {
if (element.type =="text" || element.type =="button" || element.type =="file"){
element.disabled = "false";
}
}
}

星期五, 6月 20, 2008

對流血一週仍然不死的動物千萬不能大意(轉)


  1. 我和超人的唯一區別是:我把內褲穿在裏面了。
  2. 我不是隨便的人,但隨便起來就不是人。
  3. 我身在江湖,江湖卻沒有關於我的傳說……
  4. 寧願相信世間有鬼,也不相信男人那張破嘴!
  5. 水至清則無魚,人至賤則無敵。
  6. 騎白馬的不一定是王子,可能是唐僧;帶翅膀的不一定是天使,也可能是"鳥人"。
  7. 時間和乳溝一樣,擠一擠還是有的。
  8. 一山不能容二虎,除非一公和一母。
  9. 對流血一週仍然不死的動物千萬不能大意……
  10. 我,一個大學生的人生奮鬥目標:農婦,山泉,有點田。
  11. 一見鍾情,再而死,三而竭。
  12. 一個人並不孤單,想一個人時才孤單。
  13. 生,容易。活,容易。生活不容易。
  14. 流氓不可怕,就怕流氓有文化。
  15. 男人的謊言可以騙女人一夜,女人的謊言可以騙男人一生!
  16. 水能載舟,亦能煮粥!
  17. 你放心,看到你我連食欲都沒了,還談什麼性慾!
  18. 相親最大的好處是:如果日後婚姻出問題,你可以把責任推給媒人。
  19. 女人無所謂正派,正派是因為受到的引誘不夠;男人無所謂忠誠,忠誠是因為背叛的籌碼太低……
  20. 聰明的女人對付男人,而笨女人對付女人。

去年度的10個佳句:
10 . 問世間情為何物?一物剋一物。
09 . 避孕的效果:不成功,便成人。
08 . 錢不是問題,問題是我沒有錢。
07 . 喝醉了我誰也不服,我只要扶牆。
06 . 有錢人終成眷屬。
05 . 火煉金,金煉女人,女人煉男人。
04 . 一山不能容二虎,除非一公一母。
03 . 水能載舟,亦能煮粥。
02 . 鑽石恆久遠,一顆就破產。
01 . 我就像一隻趴在玻璃上的蒼蠅,前途一片光明,但是出路沒有。

其中 對流血一週仍然不死的動物千萬不能大意 原來是.......女人 Orz

星期二, 6月 17, 2008

Bad version number in .class file

Bad version number in .class file

今天發生的以上的錯誤訊息,
發現版本不合,
後來查出原因是因eclipse 預設的 JDK 版本的關西,
預設為系統中最新的版本,
因此編譯後放到 tomcat 上面去跑,會出現以上的錯誤,

在 eclipse 中,
window > References


修改 JDK Compiler 的版本即可

星期五, 6月 13, 2008

練英文聽力 - 轉

練英文聽力 : Cheers 快樂工作人

(1) http://www.englishbaby.com
星期一到五每天都有新的對話內容可以學習,也有錄音,錄音的速度近似美國人講話的速度,而且對話內容都是美國人最愛談論的內容,很棒的網站

(2) http://www.esl-lab.com
錄音的速度近似美國人講話的速度,網站的內容也多,練習聽力不可或缺的網站

(3) http://www.liveabc.com
目前有七百多句的英文常用句/俚話等,有錄音,也有中文解釋,可以好好利用

(4) http://www.freexinwen.com/chinese/eng/abc.htm
美國之音中文網,收錄四百多個美國習慣用語,有錄音,中文解說方面更為詳盡

(5) http://home.t-online.de/home/toni.goeller/idiom_wm/index.htm
雖然沒有錄音,解釋也都是全英文,但是我覺得它的版面設計的很好,很容易閱讀,不像很多網站會全部寫在一起,擠成一堆。

(6) http://www.geocities.com/thetropics/resort/5946/
英文烏龍笑話,雖然好像聽起來實用價值不高,但其實都是華人在美國發生的英文糗事,像是如果妳要照相照一個老外,他說他會break your camera,你一定會很生氣,覺得他很粗魯無理,但是他想說的只是,他不上相....跟弄壞你的相機一點關係也沒有

(7) http://engtap.greatnow.com
主要是練習聽力,指定一個topic請學生或是教授來談他們的看法什麼的,雖然不是全部都是美國人錄音,但是可以訓練聽不同口音的英文

(8) http://www.english-trailers.com
看電影的預告片來學英文,在看完預告片後還有填空題,讓你確定你剛剛聽到的是什麼字,很有趣的聽力練習方式

星期四, 6月 12, 2008

Google的 ajax 語系轉換

Google的 ajax 語系轉換

document 說明

星期三, 6月 11, 2008

java 轉換unicode

JDK 內附的 native2ascii tool

http://java.sun.com/j2se/1.4.2/docs/tooldocs/tools.html#intl

用來將多國語系轉換成為 unicode編碼格式,
可以在瀏覽器中顯示多國語系,

在 UTF8 編碼的jsp頁面中 include 頁面,
其中又包含有中文字,
可用這種方式先進行編碼動作,
在include之後瀏覽器可正常顯示

EX:

unicode到ascii的方式:
native2ascii -reverse 原檔名 轉換檔名

ascii到unicode方式:
native2ascii 原檔名 轉換檔名

範例
aaa.txt文件內容包括:中國
native2ascii aaa.txt bbb.txt
執行後變為:\u4e2d\u56fd

aaa.txt文件內容包括:\u4e2d\u56fd
native2ascii -reverse aaa.txt bbb.txt
執行後變為:中國

星期一, 6月 09, 2008

tomcat5.5連接DBCP

這幾天在弄DBCP的環境
環境:tomcat 5.5、jdk1.5、windowXP SP2
DBCP JAR:commons-dbcp-1.2.2.jar、commons-collections-3.2.jar、commons-pool-1.3.jar
參考文章 TOMCAT

1. 設置 conf\server.xml 在 <Host> ... </Host> 加入以下設定
  1. <Context path="" docBase="C:/Program Files/Apache Software Foundation/Tomcat 5.5/webapps/ROOT"
  2. debug="5" reloadable="true" crossContext="true">
  3. <Resource name="jdbc/hxxg" auth="Container"
  4. type="javax.sql.DataSource"
  5. maxActive="100" maxIdle="10" maxWait="10000"
  6. username="syxxxx" password="_yoxxxx"
  7. driverClassName="com.sybase.jdbc3.jdbc.SybDriver"
  8. url="jdbc:sybase:Tds:172.17.1.5:5000/hxxg?autoReconnect=true"/>
  9. </Context>

以上 在 docBase 設定裡面 如果是 ROOT 目錄下的網站就要設定絕對路徑,
如果是 在 webapps 下的 hxxg 目錄的話,設定成
<Context path="/hxxg" docBase="hxxg" ....

2. 設置網站 WEB-INF/web.xml ,在 <web-app> ... </web-app> 加入以下設定,設定對應jdbc來源
  1. <resource-ref>
  2. <description>DB Connection</description>
  3. <res-ref-name>jdbc/hxxg</res-ref-name>
  4. <res-type>javax.sql.DataSource</res-type>
  5. <res-auth>Container</res-auth>
  6. </resource-ref>


3. 測試連線方式1,使用 DataSource 連接
  1. <%@page import="java.sql.*"%>
  2. <%@ page import="javax.sql.*" %>
  3. <%@ page import="javax.naming.*" %>
  4. <%@page contentType="text/html;charset=big5"%>
  5. <%
  6. try {
  7. Context initContext = new InitialContext();
  8. Context envContext = (Context)initContext.lookup("java:/comp/env");
  9. DataSource ds = (DataSource)envContext.lookup("jdbc/hxxg");
  10. Connection conn = ds.getConnection();
  11. if(!conn.isClosed())
  12. out.println("資料庫連線測試成功!");
  13. Statement stmt = conn.createStatement();
  14. conn.setAutoCommit(false);
  15. ResultSet rs = stmt.executeQuery("select loginid,password from wb005 ");
  16. while(rs.next()){
  17. out.println("loginid:"+ rs.getString("loginid")
  18. +":password:"+ rs.getString("password"));
  19. }
  20. conn.commit();
  21. conn.close();
  22. }
  23. catch(SQLException e) {
  24. out.println(e.toString());
  25. }
  26. %>

4. 測試連線方式2,使用 jstl 連接
  1. <%@taglib uri="http://java.sun.com/jsp/jstl/sql"
  2. prefix="sql" %>
  3. <%@taglib uri="http://java.sun.com/jsp/jstl/core"prefix="c" %>
  4. <sql:query var="rs" dataSource="jdbc/hxxg">
  5. select loginid, password from wb005
  6. </sql:query>
  7. <html>
  8. <head>
  9. <title>DB Test</title>
  10. </head>
  11. <body>
  12. <h2>Results</h2>
  13. <c:forEach var="row" items="${rs.rows}">
  14. loginid ${row.loginid}<br/>
  15. password ${row.password}<br/>
  16. </c:forEach>
  17. </body>
  18. </html>

主要SQL語法詳解

主要SQL語法詳解

CREATE DATABASE database_name [WITH LOG IN 「pathname」]


建立資料庫。

database_name:資料庫名稱。

「pathname」:事務處理日誌檔案。

建立一database_name.dbs目錄,存取權限由GRANT設定,無日誌檔案就不能使用

BEGIN WORK等事務語法(可用START DATABASE語法來改變)。

可選定當前資料庫的日誌檔案。

如:select dirpath form systables where tabtype = 「L」;

例:create databse customerdb with log in 「/usr/john/log/customer.log」;



DATABASE databse-name [EXCLUSIVE]

選擇資料庫。

database_name:資料庫名稱。

EXCLUSIVE:獨佔狀態。

存取當前目錄和DBPATH中指定的目錄下的資料庫,事務中處理過程中不要使用此語法。

例:dtabase customerdb;



CLOSE DATABASE


關閉當前資料庫。

database_name:資料庫名稱。


此語法之後,只有下列語法合法:

CREATE DATABASE; DATABASE; DROP DATABSE; ROLLFORWARD DATABASE;

刪除資料庫前必須使用此語法。

例:close database;


DROP DATABASE database_name


刪除指定資料庫。

database_name:資料庫名稱。

使用者是DBA或所有表的擁有者;刪除所有檔案,但不包括資料庫目錄;不允許刪除當前資料庫(須先關閉當前資料庫);事務中處理過程中不能使用此語法,通過ROLLBACK WORK 也不可將資料庫恢復。

例:drop databse customerdb;



CREATE [TEMP] TABLE table-name (column_name datatype [NOT NULL], …)

[IN 「pathname」]

建立表或臨時表。

table-name :資料表名稱稱。

column_name:字段名稱。

data-type:字段資料類型。

path-name:指定表的存放位置

TEMP用於指定建立臨時表;資料表名稱要唯一,字段要唯一;有CONNECT權限的使用者可建立臨時表;建立的表預設允許CONNECT使用者存取,但不可以ALTER。


例:create table user

( c0 serial not null, c1 char (10),

c2 char(2),

c3 smallint,

c4 decimal(6,3),

c5 date

) in 「usr/john/customer.dbs/user;



ALTER TABLE

ALTER TABLE table-name

{ADD (newcol_name newcol_type [BEFORE oldcol_name], …) | DROP (oldcol_name, …)

| MODIFY (oldcol_name newcol_type [NOT NULL], … )}, …

修改表結構。

table-name:資料表名稱稱。

newcol_name:新字段名稱

newcol_type:新字段類型

oldcol_name:老字段名稱

可以使用單個或多個ADD子句、DROP子句、MODIFY子句,但某個字句失敗,操作即中止;原字段是NULL,不允許MODIFY為NOT NULL,除非所有NULL字段中均非空,反之可以;ALTER使用者是表的擁有者或擁有DBA權限,或被授權;事務中處理過程中不要使用此語法。

例:alter table user

add ( c6 char(20) before c5);



RENAME TABLE oldname TO newname

修改資料表名稱。

oldname:原名稱。

newname:新名稱。

RENAME使用者是表的擁有者或擁有DBA權限,或被授權;事務中處理過程中不要使用此語法。

例:rename user to bbb;



DROP TABLE table-name

刪除表。

table-name:資料表名稱稱。

刪除表意味著刪除其中所有資料、各字段上的索引及對表的賦權、視圖等;使用者不能刪除任何系統目錄表;語法使用者是表擁有者或擁有DBA權限,事務中處理過程中不要使用此語法。



RENAME COLUMN table.oldcolumn, TO newcolumn

修改字段名。

table.oldcolumn:資料表名稱及原字段名稱

newcolumn:新字段名稱。

語法使用者是表的擁有者或擁有DBA權限或有ALTER權限的使用者,事務中處理過程中不要使用此語法。

例:rename column user.c6 to c7;

CREATE VIEW view-name column-list


CREATE VIEW view-name column-list AS select_statement [WITH CHECK OPTION]

建立視圖。

view-name:視圖名稱。

column-list:字段列表。

select_statement:SELECT語法。

以下語法不使用視圖:ALTER TABLE,DROP INDEX,ALTER INDEX,LOCK TABLE,CREATE INDEX, RENAME TABLE;視圖將延用基表的字段名,對表達式等虛字段和多表間字段重名必須指明標識其字段名;若對視圖中某些字段命名,則所有字段都必須命名;視圖中資料類型延用基表中的資料類型,虛字段起訣於表達式;不能使用ORDER BY和UNION子句;對視圖中所有的字段要有SELECT權限;事務中處理過程中使用此語法,即使事務回滾,視圖也將建立,不能恢復。

例:create view v_user as select * from user where c1 = 「B1」;



DROP VIEW view-name

刪除視圖。

view-name:視圖名稱。

使用者可刪除自己建立的視圖;視圖的後代視圖也被刪除;事務中處理中不要使用此語法。

例:drop view v_user;

CREATE INDEX


CREATE [UNIQUE/DISTINCT] [CLUSTER] INDEX index_name ON table_name

([column_name ASC/DESC],…)

建立索引。

index_name:索引名稱。

table_name:資料表名稱稱。

column_name:字段名稱。

UNIQUE/DISTINCT:唯一索引。

CLUSTER:使表的實際存放順序按索引排列。

ASC/DESC:升序或降序,預設升序。

語法執行時,將表的狀態置為EXCLUSIVE;復合索引最多包含8個字段,所有字段長度和不得大於120字節;事務中處理過程中使用此語法,即使事務回滾,索引將建立,不能恢復。

例:create cluster index ix_user on user(c5);



ALTER INDEX index-name TO [NOT] CLUSTER

修改索引性質。

index-name:索引名稱。

TO [NOT] CLUSTER:去掉或加上CLUSTER屬性。

語法執行時,將表的狀態置為EXCLUSIVE;事務中處理過程中使用此語法,即使事務回滾,索引性質將改變,不能恢復。

例:alter index ix_user to not cluster;

DROP INDEX index-name


刪除索引。

index-name:索引名稱。

語法使用者是索引的擁有者或擁有DBA權限,事務中處理過程中不要使用此語法,否則事務無法恢復。

例:drop index ix_user;



CREATE SYNONYM synonym FOR table-name

建立同義名。

synonym:同義名

table-name:資料表名稱稱

資料庫的建立者可以使用同義名;沒有賦予同義名權限的使用者不能使用同義名;同義名不能和資料表名稱相同;事務中處理過程中不要使用此語法。

例:create synonym user_alias for user;



DROP SYNONYM synonym

刪除同義名。

synonym:同義名

可以刪除自己建立的同義名;事務中處理過程中不要使用此語法,否則無法恢復。

例:drop synonym user_alias;



UPDATE STATISTICS [FOR TABLE table-name]

更新資料庫的統計數字。

table-name:資料表名稱稱

此語法僅作用於當前資料庫;可提高查詢效率;只有執行此語法,才改變統計資料。


例:update statistics for table user;

GRANT {DBA|RESOURCE|CONNECT} TO {PUBLIC|user-list}
授權命令。

PUBLIC|user-list:全部或指定的使用者。

三種權限居且僅居其一,事務處理過程中不要執行GRANT語法。

例:grant resource to pulbic;

GRANT tab-privilege ON table-name TO {PUBLIC|user-list} [WITH GRANT OPTION]


授表級權限。

tab-privilege:表級權限。

table-name:資料表名稱稱。

PUBLIC|user-list:全部或指定的使用者。

[WITH GRANT OPTION]:表示被授權使用者有否權限進行二次授權。

使用者可以在自己建立表達式或被[WITH GRANT OPTION]准許的表中進行賦權;限定越多的權限優先級越高。

例:grant update(c1,c6) on user to dick with grant option;



附(INFORMIX的權限)

(1) 資料庫的權限(控制對資料庫的瀏覽以及資料庫中表的建立和刪除)


DBA權限:全部權利,修改系統表,建立和刪除表與索引、增加和恢復表資料,以及授予其他使用者資料庫權限等;

RESOURCE權限:允許對資料庫表中的資料進行存取,建立永久性表以及索引。


CONNECT權限:只允許對資料庫表中的資料進行存取,建立和刪除視圖與臨時表。

(2)表級權限(對表的建立、修改、檢索和更新等權限)


ALTER:更改權限

DELETE:刪除權限

INDEX:索引權限

INSERT:插入權限

SELECT [(cols)]:指定字段或所有字段上的查詢權限,不指明字段預設為所有字段。

UPDATE [(cols)] :指定字段或所有字段上的更新權限,不指明字段預設為所有字段。

ALL [PRIVILEGES]:以上所有表級權限



REVOKE {DBA|RESOURCE|CONNECT} FROM {PUBLIC|user-list}

收權命令。

PUBLIC|user-list:全部或指定的使用者。

三種權限居且僅居其一,事務處理過程中不要執行GRANT語法。

例:revoke resource from john;

REVOKE tab-privilege ON table-name FROM {PUBLIC|user-list}


收表級權限。

tab-privilege:表級權限。

table-name:資料表名稱稱。

PUBLIC|user-list:全部或指定的使用者。


[WITH GRANT OPTION]:表示被授權使用者有否權限進行二次授權。

使用者只能取消由其本人賦予其他使用者的表級存取權限;不能取消自己的權限,對SELECT和UPDATE作取消時,將取消所有表中字段的SELECT 和UPDATE權限。

例;revoke update on user from dick;



LOCK TABLE table-name IN {SHARE|EXCLUSIVE} MODE

記錄級加鎖和表級加鎖或檔案加鎖。

table-name:資料表名稱稱。

SHARE:允許讀表中資料,但不允許作任何修改

EXCLUSIVE:禁止其他任何形式瀏覽表

每次只能對表瑣定一次;事務處理過程中,BEGIN WORK後立即執行LOCK TABLE以取代記錄級加鎖,COMMIT WORK和ROLLBACK WORK語法取消所有對表的加鎖;若沒有事務處理,鎖將保持到使用者退出或執行UNLOCK為止。

例:lock table user in exclusive mode;



UNLOCK TABLE table-name

取消記錄級加鎖和表級加鎖或檔案加鎖。

table-name:資料表名稱稱。

例:unlock user;

SET LOCK MODE TO [NOT] WAIT

改變鎖定狀態。

TO [NOT]:等待解鎖,有可能被死鎖或不等待並提示錯誤訊息,表示此記錄被鎖,預設值。

瀏覽一個EXCLUSIVE狀態下的記錄,將返回一個錯誤。



START DATABSE db_name [WITH LOG IN 「pathname」]

啟動事務處理。

「pathname」:事務處理日誌檔案。

執行該語法前,需要先關閉當前資料庫。

例;clost database;

start databse customer with log in 「/usr/john/log/customer.log」;



BEGIN WORK

開始事務。例:begin work;



COMMIT WORK

提交(正常結束)事務。例:commit work;



ROLLBACK WORK

回滾(非正常結束)事務。例:rollback work;



SELECT

SELECT select_list FROM tab_name|view_name

WHERE condition

GROUP BY column_name


HAVING condition

ORDER BY column_list

INTO TEMP table_name

查詢語法。

select_list:選擇表或*

tab_name:資料表名稱稱

view_name:視圖名稱。

condition:查詢條件,可使用BETWEEN、IN、LIKE、IS NULL、LIKE、MATCHES、NOT、

AND、OR、=、!=或<>、>、 >= 、<=、<、ALL、ANY、SOME

column_name:分群組字段名稱

condition:群聚條件

column_list:排序字段列表,預設ASC,可指定DSC;排序時,NULL值小於非零值。


table_name:臨時資料表名稱稱

例:略

附(常用函數)

(1)集合函數:

count(*)、

sum(資料項/表達式)、avg(資料項/表達式)、max(資料項/表達式)、min(資料項/表達式)

count(distinct 資料項/表達式)、sum(distinct資料項/表達式)、avg(distinct資料項/表達式)

(2)代數函數和三角函數

HEX(資料項/表達式)、ROUND(資料項/表達式)、TRUNC(資料項/表達式)、


TAN(資料項/表達式)、ABS(資料項/表達式)、MOD(被除數,除數)

(3)統計函數

標準差,stdev()、方差,variance()、範圍,rang()

(4)時間函數

DAY(日期/時間表達式):返回數字型

MONTH(日期/時間表達式):返回整數

WEEKDAY(日期/時間表達式):0


DATE(非日期表達式):返回日期型

EXTEND(日期/時間表達式,[第一個至最後一個]):返回指定的整數

MDY(月,日,年):返回日期型

CURRENT:返回日期型

(5)時間函數

ROUND(),四捨五入。如:ROUND(10.95,position)position進行四捨五入的前一位置

TRUNC(),截取。如:TRUNC(10.95,0)position截取的位置

INFORMIX臨時表在下列情況下自動取消:

A.退出資料庫瀏覽工具(如DBACCESS)

B.SQL通話結束(DISCONNECT)

C.發出取消表語法

D.退出程式時

INSERT
INSERT INTO view_name|table_name [(column_list)] VALUES (value_list)

或 INSERT INTO view_name|table_name [(column_list)] select_statement

插入資料

view_name|table_name:視圖名或資料表名稱稱

column_list:資料項列表。

value_list:值列表

select_statement:查詢語法。

例:略



DELETE FROM view_name|table_name WHERE search-conditions
刪除語法。

view_name|table_name:視圖名或資料表名稱稱

search-conditions;刪除條件

例:略


UPDATE
UPDATE view_name|table_name SET column_1 = value_1ist WHERE search_conditions

或UPDATE view_name|table_name SET column_1|* = value_1ist WHERE search_conditions

更新資料語法。

view_name|table_name:資料表名稱稱或視圖資料表名稱稱

value_1ist:字段值

search_conditions:更新資料的條件


例:略


CHECK TABLE table-name
檢查索引語法。

語法使用者是表的擁有者或擁有DBA權限;不能對systable使用此語法。

例:略


REPAIR TABLE table-name
修復索引。

語法使用者是表的擁有者或擁有DBA權限;不能對systable使用此語法。

例:略


LOAD FROM 「file-name」 INSERT INTO table_name [(column_name[,…])]
將文本資料栽入表中。

例:load form 「aa.txt」 insert into user;


UNLOAD TO 「pathname」
將表中資料卸為文本。

例:unload to 「aa.txt」 select * from user;


INFO
系統訊息查詢。

INFO TABLES:得到當前資料庫上表的名字。

INFO columns FOR table_name:指定表上的字段訊息。

INFO INDEXES FOR table_name:指定表上的索引訊息。

INFO [ACCESS|PRIVILEGES] FOR table_name:指定表上的存取權限。

INFO STATUS FOR table_name:指定表的狀態訊息。


例: info tables;

星期五, 6月 06, 2008

聰明說話35招(轉)

職場的應對進退要小心,以下歸納出35項國內外溝通專家的建議,幫助你學會說對話,贏得好人緣,拉抬職場身價。

文/吳凱琳 圖/50cc
2008年6月 Cheers雜誌

讚美時,你該說……
1.讚美行為而非個人。

舉例來說,如果對方是廚師,千萬不要說:「你真是了不起的廚師。」他心裡知道有更多廚師比他還優秀。但如果你告訴他,你一星期有一半的時間會到他的餐廳吃飯,這就是非常高明的恭維。

2.透過第三者表達讚美。

如果對方是經由他人間接聽到你的稱讚,比你直接告訴本人更多了一份驚喜。相反地,如果是批評對方,千萬不要透過第三者告訴當事人,避免加油添醋。

3.客套話也要說得恰到好處。

客氣話是表示你的恭敬和感激,所以要適可而止。有人替你做了一點點小事,你只要說「謝謝。」、「對不起,這件事麻煩你了。」至於「才疏學淺,請閣下多多指教。」這種缺乏感情的客套話,就可以免了。

4.面對別人的稱讚,說聲謝謝就好。

一般人被稱讚時,多半會回答「還好!」或是以笑容帶過。與其這樣,不如坦率接受並直接跟對方說謝謝。有時候對方稱讚我們的服飾或某樣東西,如果你說:「這只是便宜貨!」反而會讓對方尷尬。

5.有欣賞競爭對手的雅量。

當你的對手或討厭的人被稱讚時,不要急著說:「可是……」,就算你不認同對方,表面上還是要說:「是啊,他很努力。」顯示自己的雅量。
批評時,絕不要……

6.批評也要看關係。

忠言未必逆耳,即便你是好意,對方也未必會領情,甚至誤解你的好意。除非你和對方有一定的交情或信任基礎,否則不要隨意提出批評。

7.批評也可以很悅耳。

比較容易讓人接受的說法是:「關於你的……,我有些想法,或許你可以聽聽看。」

8.時間點很重要。

千萬不要在星期一早上,幾乎多數人都會有「星期一憂鬱」的症狀。另外也不要在星期五下班前,以免破壞對方週末休假的心情。

9.注意場合。

不要當著外人的面批評自己的朋友或同事,這些話私底下關起門來說就好。

10.同時提出建議。

提出批評之外,還應該提供正面的改進建議,才可以讓你的批評更有說服力。
回話時,要小心……

11.避免不該說出口的回答。

像是:「不對吧,應該是……」這種話顯得你故意在找碴。另外,我們也常說:「聽說……」,感覺就像是你道聽塗說得來的消息,有失得體。

12.別回答「果然沒錯!」

這是很糟的說法,當對方聽到這種回應時,心中難免會想:「你是不是明知故問啊?」所以只要附和說:「是的!」

13.改掉一無是處的口頭禪。

每個人說話都有習慣的口頭禪,但會容易讓人產生反感。例如:「你懂我的意思嗎?」、「你清楚嗎?」、「基本上……」、「老實說……」。

14.去除不必要的「雜音」。

有些人每一句話最後習慣加上「啊」等語助詞,像是「就是說啊」、「當然啦」,在比較正式的場合,就會顯得不夠莊重穩重。

15.別問對方「你的公司是做什麼的?」

你在一場活動遇到某個人,他自我介紹時說自己在某家公司工作。千萬別問:「你公司是做什麼的?」這項活動也許正是他們公司舉辦的,你要是不知道就尷尬了。也不要說:「聽說你們做得很好!」因為對方可能這季業績掉了3成。你應該說:「你在公司擔任什麼職務?」如果不知道對方的職業就別問,因為有可能他沒工作。

16.別問不熟的人「為什麼?」

如果彼此交情不夠,問對方「為什麼?」有時會有責問、探人隱私的意味。例如,「你為什麼那樣做?」、「你為什麼做這個決定?」這些問題都要避免。
做面子,給別人……

17.別以為每個人都認識你。

碰到曾經見過面,但認識不深的人時,絕不要說:「你還記得我嗎?」萬一對方想不起來,就尷尬了。最好的方法還是先自我介紹:「你好,我是×××,真高興又見面了。」

18.拒絕也可以不失禮。

用餐時,若主人推薦你吃某樣你不想吃的東西,可以說:「對不起,我沒辦法吃這道菜,不過我會多吃一點××。」讓對方感受到你是真心喜歡並感謝他們準備的食物。如果吃飽了,可以說:「這些菜真好吃,要不是吃飽了,真想再多吃一點。」

19.不要表現出自己比對方厲害。

在社交場合交談時,如果有人說他剛剛去了紐約1星期,就不要說上次你去了1個月,這樣會破壞對方談話的興致。還不如順著對方的話,分享你對紐約的感覺和喜愛。

20.不要糾正別人的錯誤。

不要過於雞婆地糾正別人的發音、文法或事實,不僅會讓對方覺得不好意思,同時也顯得你很愛表現。

21.不懂不要裝懂。

如果你對談話的主題不了解,就坦白地說:「這問題我不清楚。」別人也不會繼續為難你。如果不懂還要裝懂,更容易說錯話。

看臉色,別衝動……

22.掌握1秒鐘原則。

聽完別人的談話時,在回答之前,先停頓1秒鐘,代表你剛剛有在仔細聆聽,若是隨即回話,會讓人感覺你好像早就等著隨時打斷對方。

23.聽到沒有說出口的。

當你在傾聽某人說話時,聽到的只是對方知道、並且願意告訴你的。除了傾聽,我們還必須「觀察」。他的行為舉止如何?從事什麼工作?如何分配時間與金錢?

24.時間點對了,什麼都對。

當你有事要找同事或主管討論時,應該根據自己問題的重要與否,選擇對的時機。假若是為個人瑣事,就不要在他正埋頭思考時打擾。如果不知道對方何時有空,不妨先寫信給他。
去尷尬,有方法……

25.微笑拒絕回答私人問題。

如果被人問到不想回答的私人問題或讓你不舒服的問題,可以微笑地跟對方說:「這個問題我沒辦法回答。」既不會給對方難堪,又能守住你的底線。

26.拐彎抹角回絕。

許多社交場合,喝酒總是無法避免。不要直接說:「我不喝酒。」掃大家的興。不如幽默地說:「我比較擅長為大家倒酒。」

27.先報上自己大名。

忘記對方的名字,就當作是正式場合,向對方介紹自己的名字或拿出名片,對方也會順勢報上自己的大名和名片,免除了叫不出對方姓名的窘境。

28.不當八卦傳聲筒。

當一群人聊起某人的八卦或傳言時,不要隨便應聲附和,因為只要說出口的話,必定會傳到當事人耳中。最好的方法就是不表明自己的立場,只要說:「你說的部份我不太清楚。」

29.下達「送客令」。

如果你覺得時間差不多該結束談話或送客,但對方似乎完全沒有要起身離開的意思,可以說:「不好意思,我得打通電話,時間可能有點久……」,或是:「今天真的很謝謝你來……」。你也可以不經意地看看自己的手錶,讓對方知道該走了。

30.讓對方覺得他很重要。

如果向前輩請求幫忙,可以說:「因為我很信任你,所以想找你商量……」讓對方感到自己備受尊敬。
評部屬,要恰當……

主管如何和部屬溝通,才能說得恰到好處又不傷關係?資誠企業管理顧問公司進行內部教育訓練時,教導新手主管5項溝通守則。

31.直接描述現狀。

和部屬意見不同時,不要直接批評,而要說明不同點在哪。

32.尋求解決。

如果部屬績效不佳,應該要詢問他可以如何解決,不要採取威脅態度。

33.主動表達幫忙。

如果一時之間無法解決部屬的問題,不要說「這種事先不要來煩我」,而是告訴他「我知道有誰可以幫忙」。

34.說話語氣要平等。

主管切忌說「我有十幾年的經驗,聽我的就對了。」比較好的說法是:「這方法我用過,而且很有效,你要不要試試看?」

35.彈性接納部屬意見。

即使你心有定見,也不要對部屬說:「這些建議都考慮過了,不必再多說。」還是應該給部屬機會,對他說:「關於這個問題,我已有了腹案,不過仍想聽聽你的看法。」