軟件工作的基本方法之一:5分鐘工作制
在軟件工作中,遇到小難題(如:語法、簡單算法等)時,如果自己5分鐘內(nèi)沒有解決,則直接詢問本小組的其他人員。
相關(guān)的一個基本工作方法:15分鐘工作制
如果一個問題,本小組15分鐘內(nèi)無法解決時,則把本問題記錄下來,留待明天(后續(xù))解決。
以上2個方法,可以有效的保證工作的進(jìn)度,保證工作的愉快程度。
相關(guān)的方法是:
軟件開發(fā)工作中的1030原則2種方法的區(qū)別在2點(diǎn):
1、時間長短不一,5分鐘短,1030原則長一倍;
2、適用地方不一,5分鐘適用于簡單問題,1030適用于其他問題。
posted @
2007-05-11 09:02 石正 閱讀(200) |
評論 (0) |
編輯 收藏
我工作的計算機(jī)編號是51,現(xiàn)在才明白,是每天都是勞動節(jié)的意思! 勞動節(jié)快樂!天天快樂!
最近真忙啊!
posted @
2007-04-29 16:15 石正 閱讀(241) |
評論 (0) |
編輯 收藏
C++中,CTime 與 CString轉(zhuǎn)換
CTime m_StartTime1 = CTime::GetCurrentTime();
CString csStartTime = m_StartTime1.Format( "%Y%m%d%H%M%S" );
一.將CString轉(zhuǎn)為CTime的幾種方法
CString timestr = "2000年04月05日";
int a,b,c ;
sscanf(timestr.GetBuffer(timestr.GetLength()),"%d年%d月%d日",&a,&b,&c);
CTime time(a,b,c,0,0,0);
--------or - ---------------------
CString s("2001-8-29 19:06:23");
int nYear, nMonth, nDate, nHour, nMin, nSec;
sscanf(s, "%d-%d-%d %d:%d:%d", &nYear, &nMonth, &nDate, &nHour, &nMin, &nSec);
CTime t(nYear, nMonth, nDate, nHour, nMin, nSec);
---- or ------------------------
CString timestr = "2000年04月05日";
int year,month,day;
BYTE tt[5];
//get year
memset(tt, 0, sizeof(tt));
tt[0] = timestr[0];
tt[1] = timestr[1];
tt[2] = timestr[2];
tt[3] = timestr[3];
year= atoi((char *)tt);
//get month
memset(tt, 0, sizeof(tt));
tt[0] = timestr[6];
tt[1] = timestr[7];
month = atoi((char *)tt);
//get day
memset(tt, 0, sizeof(tt));
tt[0] = timestr[10];
tt[1] = timestr[11];
CTime time(year,month,day,0,0,0);
從上面來看,很明顯使用sscanf()函數(shù)的優(yōu)勢.
二.將CTIme轉(zhuǎn)換為CString的方法:
CTime tmSCan = CTime::GetCurrentTime();
CString szTime = tmScan.Format("'%Y-%m-%d %H:%M:%S'");
這樣得到的日期時間字符串就是以"2006-11-27 23:30:59"的格式.這是不是很方便呢?
//取得CTime中的日期
CString cstrDate = tmScan.Format("%Y-%m-%d");
//取得CTime中的時間
CString cstrTime = tmScan.Format("%H:%M-%S");
sprintf還有個不錯的表妹:strftime,專門用于格式化時間字符串的,用法跟她表哥很像,也是一大堆格式控制符,只是畢竟小姑娘家心細(xì),她還要調(diào)用者指定緩沖區(qū)的最大長度,可能是為了在出現(xiàn)問題時可以推卸責(zé)任吧。這里舉個例子:
更多更好的sprintf()函數(shù)說明參考:《spirntf,你知道多少?》
http://blog.csdn.net/steedhorse/archive/2005/03/25/330206.aspx
time_t t = time(0);
//產(chǎn)生"YYYY-MM-DD hh:mm:ss"格式的字符串。
char s[32];
strftime(s, sizeof(s), "%Y-%m-%d %H:%M:%S", localtime(&t));
sprintf在MFC中也能找到他的知音:CString::Format,strftime在MFC中自然也有她的同道:CTime::Format,這一對由于從面向?qū)ο竽睦锏玫搅速澲靡詫懗龅拇a更覺優(yōu)雅。
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1417748
posted @
2007-04-18 09:47 石正 閱讀(12955) |
評論 (5) |
編輯 收藏
源代碼格式不對,也是軟件錯誤。
源代碼是軟件的一個重要的組成部分,源代碼格式不對,換句話說,源代碼錯誤,肯定是軟件錯誤。所以,把源代碼編譯沒有錯誤等價為源代碼正確,是錯誤的,把運(yùn)行沒有錯誤,等價為源代碼正確,是錯誤的。
源代碼格式的幾點(diǎn)應(yīng)該注意的事項(常識):
1、源代碼的書寫格式,應(yīng)該體現(xiàn)源代碼內(nèi)部的邏輯關(guān)系;
2、源代碼內(nèi)部最重要的代碼行是:空行;空行把代碼分成各個相對獨(dú)立的組成部分;
3、源代碼內(nèi)部第二重要的代碼行是:注釋行;
4、源代碼行內(nèi)最重要的字符是:空格;空格把代碼行分成各個相對獨(dú)立的組成部分;
5、源代碼行內(nèi)第二重要的字符是:制表符(Tab),制表符是行首縮進(jìn)使用的字符;
6、注釋合格的標(biāo)準(zhǔn)是:同等級技術(shù)能力的技術(shù)人員,可用比較方便的看懂代碼;或者,應(yīng)該從事該工作的技術(shù)人員可以容易的看懂;
7、注釋行數(shù)應(yīng)該占到總代碼行數(shù)的三分之一;
8、每個源代碼文件頭部都必須有說明本文件功能的注釋;
9、自己定義的每個函數(shù)都必須有說明函數(shù)功能的注釋;
10、自己定義的每個變量都必須有說明變量功能的注釋;
11、注釋應(yīng)該使用自己的母語(漢語);
12、一句注釋合格的標(biāo)準(zhǔn)是,表達(dá)了需要表達(dá)的內(nèi)容,語法正確;
13、清楚的注釋能夠方便代碼閱讀者理解代碼的邏輯關(guān)系和各個函數(shù)的功能;
14、鍵盤上最重要的鍵是空格鍵,空格占英文文章的比例是20%左右;寫軟件源代碼時,空格的比例也很大;所以,鍵盤上面積最大的鍵是空格;
posted @
2007-04-18 09:08 石正 閱讀(505) |
評論 (1) |
編輯 收藏
引用自
http://www.91php.cn/trackback.php?tbID=88&extra=964ce999cp
SQL Server 2000中,當(dāng)新建一個空的數(shù)據(jù)庫后,在查詢分析器中執(zhí)行
sp_database 或select * from sysobjects where xtype = 'U'
都會得到dtproperties表,并顯示為用戶表, 可這個表我從沒有創(chuàng)建過。但是在企業(yè)管理器中,dtproperties卻顯示為系統(tǒng)表。難道是bug ? 查看dtproperties,里面沒有數(shù)據(jù),是個空表。在SQL Server聯(lián)機(jī)叢書里沒有關(guān)于這個表的描述。
dtproperties表在企業(yè)管理器中無法刪除,但在查詢分析器中 執(zhí)行drop table dtproperties卻可以刪除。
手工建立一個表,表名就叫dtproperties,然后再查看,在企業(yè)管理器中赫然顯示為系統(tǒng)表!! 看來Bug是一定的了。
重新創(chuàng)建一個數(shù)據(jù)庫, 寫個觸發(fā)器,讓其在dtproperties表執(zhí)行insert時執(zhí)行,然后在SQL Server里隨意操作,hehe,終于發(fā)現(xiàn),在新建關(guān)系圖時,dtproperties表被插入數(shù)據(jù),看來它是用來存儲數(shù)據(jù)關(guān)系圖的。呵呵,想點(diǎn)辦法,數(shù)據(jù)關(guān)系圖以后也可以備份下來了。
再用drop table dtproperties刪除表dtproperties,[手工創(chuàng)建dtproperties ,結(jié)構(gòu)任意,] 然后在企業(yè)管理器中新建數(shù)據(jù)關(guān)系圖,呵呵,SQL Server報錯!再次證實(shí)前面的猜想!
SQL Server 2005中dtproperties 表不存在了,取而代之的是sysdiagram (記不住具體的名稱了) ,這個bug也不存在了,SQL Server 2005中的系統(tǒng)表和SQL Server 2000有了很大的不同。
posted @
2007-04-05 10:21 石正 閱讀(816) |
評論 (0) |
編輯 收藏
posted @
2007-03-30 09:51 石正 閱讀(177) |
評論 (0) |
編輯 收藏
VC++6 寫完的程序程編譯鏈接通過后,點(diǎn)運(yùn)行的時候出現(xiàn)one ? or ? more ? files ? out ? of ? date ? or ? not ? exist,解決辦法。
把所有日期大于當(dāng)前系統(tǒng)日期的文件,打開后,添加一個空格,然后保存,即可。
可以對照文件的目錄,按時間倒序排列后,逐個處理。
posted @
2007-03-22 17:10 石正 閱讀(1277) |
評論 (2) |
編輯 收藏
sysobjects
在數(shù)據(jù)庫內(nèi)創(chuàng)建的每個對象(約束、默認(rèn)值、日志、規(guī)則、存儲過程等)在表中占一行。只有在 tempdb 內(nèi),每個臨時對象才在該表中占一行。
列名 |
數(shù)據(jù)類型 |
描述 |
name
|
sysname
|
對象名。 |
Id
|
int
|
對象標(biāo)識號。 |
xtype
|
char(2)
|
對象類型。可以是下列對象類型中的一種:
C = CHECK 約束 D = 默認(rèn)值或 DEFAULT 約束 F = FOREIGN KEY 約束 L = 日志 FN = 標(biāo)量函數(shù) IF = 內(nèi)嵌表函數(shù) P = 存儲過程 PK = PRIMARY KEY 約束(類型是 K) RF = 復(fù)制篩選存儲過程 S = 系統(tǒng)表 TF = 表函數(shù) TR = 觸發(fā)器 U = 用戶表 UQ = UNIQUE 約束(類型是 K) V = 視圖 X = 擴(kuò)展存儲過程 |
uid
|
smallint
|
所有者對象的用戶 ID。 |
info
|
smallint
|
保留。僅限內(nèi)部使用。 |
status
|
int
|
保留。僅限內(nèi)部使用。 |
base_schema_ ver
|
int
|
保留。僅限內(nèi)部使用。 |
replinfo
|
int
|
保留。供復(fù)制使用。 |
parent_obj
|
int
|
父對象的對象標(biāo)識號(例如,對于觸發(fā)器或約束,該標(biāo)識號為表 ID)。 |
crdate
|
datetime
|
對象的創(chuàng)建日期。 |
ftcatid
|
smallint
|
為全文索引注冊的所有用戶表的全文目錄標(biāo)識符,對于沒有注冊的所有用戶表則為 0。 |
schema_ver
|
int
|
版本號,該版本號在每次表的架構(gòu)更改時都增加。 |
stats_schema_ ver
|
int
|
保留。僅限內(nèi)部使用。 |
type
|
char(2)
|
對象類型。可以是下列值之一:
C = CHECK 約束 D = 默認(rèn)值或 DEFAULT 約束 F = FOREIGN KEY 約束 FN = 標(biāo)量函數(shù) IF = 內(nèi)嵌表函數(shù) K = PRIMARY KEY 或 UNIQUE 約束 L = 日志 P = 存儲過程 R = 規(guī)則 RF = 復(fù)制篩選存儲過程 S = 系統(tǒng)表 TF = 表函數(shù) TR = 觸發(fā)器 U = 用戶表 V = 視圖 X = 擴(kuò)展存儲過程 |
userstat
|
smallint
|
保留。 |
sysstat
|
smallint
|
內(nèi)部狀態(tài)信息。 |
indexdel
|
smallint
|
保留。 |
refdate
|
datetime
|
留作以后使用。 |
version
|
int
|
留作以后使用。 |
deltrig
|
int
|
保留。 |
instrig
|
int
|
保留。 |
updtrig
|
int
|
保留。 |
seltrig
|
int
|
保留。 |
category
|
int
|
用于發(fā)布、約束和標(biāo)識。 |
cache
|
smallint
|
保留。 |
posted @
2007-03-21 10:16 石正 閱讀(2422) |
評論 (0) |
編輯 收藏
系統(tǒng)表的應(yīng)用
系統(tǒng)表用的不多,寫幾個常用的系統(tǒng)表
各個數(shù)據(jù)庫中的系統(tǒng)表:
1.SysObject:
? 存放數(shù)據(jù)庫中的各個對象!
? 最重字段
?? 1.1 Name,Id,Crdate,Xtype (U :用戶表,V:視圖,Tr:觸發(fā)器,P:存儲過程,S,系統(tǒng)表)
?? 1.2 常用函數(shù) Object_ID('對象名'),Object_Name?
?? 此外我們?nèi)绻肷?,2,3,4,5這樣的等差數(shù)列,可以這樣做
?? Select Identity(int,1,1) As Id Into # From SysObjects,SysColumns??
2.SysColumns
? 存放各列的信息
? 最重字段
?? 2.1 Name,Id,Colid--字段在表中存放的順序
?? 設(shè)一個表中字段有很多,想列出某表除某字段外的所有字段,可以這樣寫
?? Declare @Fields Varchar(5000)
?? Select @Fields=@Fields+Name
?? From SysColumns
?? Where Id=Object_ID('Test') and Name Not In ('字段1','字段2')
?? 又如如何用列序號選擇特定列
?? Create Function F_ColumnOrder(@TableName Varchar(10),@Colid Int)
?? Returns Table
?? As
?? Return
?? Select Name From SysColumns
?? Where ID=Object_ID(@TableName) And Colid=@Colid
--Try
Select * From Dbo.F_ColumnOrder('Users',2)
??
3.SysFiles
? 如果我們想知道SQL的數(shù)據(jù)文件存放目錄的話,可以用
? Select FileName From SysFiles
4.SysComments
? 保存視圖或存儲過程的語句!
5.Sysforeignkeys
? fkeyid:外鍵表對象ID,rKeyid:主鍵表對象ID
有時我們想把數(shù)據(jù)庫中的所有表都去掉,但是有約束的存在,有些表必須在主表前刪除,否則就會報錯,
這種情況下我們就通過該表來實(shí)現(xiàn)
**********************************************************
Master表中的系統(tǒng)表
SysDataBases
? 重要字段
??? 1.1 Name,Dbid,Crdate
????? 常用函數(shù) DB_ID('數(shù)據(jù)庫名')
sysaltfiles
??? 保存各個數(shù)據(jù)庫的MDF文件的物理地址
SysProcesses
??? 保存進(jìn)程信息
??? Kill? spid 殺掉某進(jìn)程
5.注意sp_MsForEachTable函數(shù)
? 刪除某數(shù)據(jù)庫中表
?? Exec Sp_MsForEachTable 'Truncate Table ?'
?? 注意:有約束的不能刪除,會出錯的
6.如果想改系統(tǒng)表怎么辦?
? 2種方法
??? 1.通過查詢分析器改
??? 用如下語句:
???? Exec Sp_Configure 'allow updates',1--允計修改
???? Reconfigure with override
????
???? Exec Sp_Configure 'allow updates',0--不允計修改
???? Reconfigure with override????
??? 2.通過企業(yè)管理器改
???? 在SQL實(shí)例上右鍵-屬性-允計修改系統(tǒng)目錄直接進(jìn)行修改
posted @
2007-03-21 10:12 石正 閱讀(725) |
評論 (0) |
編輯 收藏
master--->數(shù)據(jù)庫的核心庫,存儲很多系統(tǒng)的信息和登錄的信息等 ?
? tempd--->存儲了諸如臨時表等信息 ?
? Northwind--->北風(fēng)數(shù)據(jù)庫,是個例子數(shù)據(jù)庫,可以模擬很多操作,并且提供例子供參考?
名稱 ? ? ? ? ? ? ? ? ? ? ? ? ? 地址 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 說明 ?
? ?
? sysaltfiles ? ? ? ? ? ? ? 主數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 保存數(shù)據(jù)庫的文件 ?
? syscharsets ? ? ? ? 主數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 字符集與排序順序 ?
? sysconfigures ? ? 主數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 配置選項 ?
? syscurconfigs ? ? 主數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 當(dāng)前配置選項 ?
? sysdatabases ? ? ? 主數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 服務(wù)器中的數(shù)據(jù)庫 ?
? syslanguages ? ? ? 主數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 語言 ?
? syslogins ? ? ? ? ? ? ? ? ? 主數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 登陸帳號信息 ?
? sysoledbusers ? ? 主數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 鏈接服務(wù)器登陸信息 ?
? sysprocesses ? ? ? 主數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 進(jìn)程 ?
? sysremotelogins主數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 遠(yuǎn)程登錄帳號 ?
? ?
? syscolumns ? ? ? ? ? 每個數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? 列 ?
? sysconstrains ? ? 每個數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? 限制 ?
? sysfilegroups ? ? 每個數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? 文件組 ?
? sysfiles ? ? ? ? ? ? ? 每個數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? 文件 ?
? sysforeignkeys ? 每個數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? 外部關(guān)鍵字 ?
? sysindexs ? ? ? ? ? ? 每個數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? 索引 ?
? sysmenbers ? ? ? ? ? 每個數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? 角色成員 ?
? sysobjects ? ? ? ? ? 每個數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? 所有數(shù)據(jù)庫對象 ?
? syspermissions ? 每個數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? 權(quán)限 ?
? systypes ? ? ? ? ? ? ? 每個數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? 用戶定義數(shù)據(jù)類型 ?
? sysusers ? ? ? ? ? ? ? 每個數(shù)據(jù)庫 ? ? ? ? ? ? ? ? ? ? ? ? ? 用戶????
posted @
2007-03-21 10:07 石正 閱讀(407) |
評論 (0) |
編輯 收藏