/*
          作用是在用戶表中遷出用戶ID﹐Name,Age去逐條更新人員表中同ID的用戶信息。這也是游標的主要功能。
          */

          /************************************************************************
          Select * From user_
          drop table user_
          ************************************************************************/
          if not exists(select 1 from sysobjects where name='user_' and type='U')

          Begin 

           CREATE TABLE [dbo].[user_](
           [PId] [char](10) COLLATE Chinese_PRC_BIN NULL,
           [PName] [char](10) COLLATE Chinese_PRC_BIN NULL,
           [PAge] [int] NULL
          ) ON [PRIMARY]

          End

          GO


          /************************************************************************
          Select * From Person
          drop table Person
          ************************************************************************/
          if not exists(select 1 from sysobjects where name='Person' and type='U')

          Begin

           CREATE TABLE [dbo].[Person](
           [PId] [char](10) COLLATE Chinese_PRC_BIN NULL,
           [PName] [char](10) COLLATE Chinese_PRC_BIN NULL,
           [PAge] [char](10) COLLATE Chinese_PRC_BIN NULL
          ) ON [PRIMARY]

          End

          GO
             

            Delete From user_
            Insert into user_(PId,PName,PAge) values('1','張三豐','100')
            Insert into user_(PId,PName,PAge) values('2','李龍','22')
            Insert into user_(PId,PName,PAge) values('3','Fuck','1000')
            Insert into user_(PId,PName,PAge) values('4','西得里','18')
            Insert into user_(PId,PName,PAge) values('5','王西風','20')

            Delete From Person
            Insert into Person(PId) values('1')
            Insert into Person(PId) values('2')
            Insert into Person(PId) values('3')
            Insert into Person(PId) values('4')
            Insert into Person(PId) values('5')

          declare   leads_curs   cursor   for      --聲明游標
          select   PId,PName,PAge   from   user_  
             
            declare    
            @ID   Char(5),  
            @Name   Char(8),
            @strsql varchar(8000), 
            @Age   Int,
            @i int

            declare
            @stridx varchar(4)
            
            Select @i=0
            open   leads_curs            --打開游標
             
            fetch   leads_curs   into   @ID,@Name,@Age  --提取第一行數據
           
            select @stridx=convert(varchar(4),1)
            select @strsql='update Person set liudinglong_'+@stridx+'= '''+convert(varchar(1),2)+''' '
            print  @strsql
            while   (@@Fetch_status=0)  
            begin
                  select @i=@i+1
            select @stridx=convert(varchar(4),@i)  
                  select @strsql='update Person Set PName='''+@Name+''',
                      PAge='''+convert(varchar(12),@Age)+'''
                Where   PId='''+@ID+''' ' 
                  Print @strsql
                  Print @stridx
                  exec(@strsql) 
                  Fetch  leads_curs into  @ID,@Name,@Age --提取下一行數據,給 ID,Name,Age,游標下移一行
                  --Fetch   Next   From   leads_curs  @ID,@Name,@Age    
            end  

            close leads_curs   

            deallocate leads_curs 


          游標的使用的demo

          posted @ 2008-06-27 09:41 肖馬輝 閱讀(364) | 評論 (0)編輯 收藏
           

          征婚啟事:
          單身男人,1980年釀造,海拔約 潘長江與姚明之間,體重肯定不及傅彪,歷經校園熔煉、軍旅鍛造,第一職業合法,第二職業也合法,第三職業保密,正搜尋20至24歲平凡美女一名,共享二人世界。希望你有些溫柔、帶點善良、略顯文靜、善待老人、喜歡小動物(老鼠除外)、熱愛生活中的美好東西(不包括錢),還沒有失去純真。

            你將得到的部分:老公一名(可以用來應付親戚朋友);幫廚一名(但不對飯菜質量負責);拎包一名(150Kg以下,購物袋不超過20個);肩膀兩個(可依靠,可當枕頭,可騎……);每月工資約80%(不算獎金及灰色收入);附送:出氣筒一支(需 二人場合使用)。

            你可以保留的權利:收拾屋子的習慣(只要不花錢就行);化妝的愛好(化妝品自理);逛街的習慣。

            你將失去的:橫著睡一張床的權利;自由若干;所有的孤獨。

            由于個人出身環境原因,具以下特征女士勿擾:愛吃減肥藥的;吸煙的;把舞池當家、視KTV如命的!

            具以下特征女士可優先考慮:會做美食的;有工作的(工作狂除外)。

          posted @ 2008-06-26 12:47 肖馬輝 閱讀(242) | 評論 (1)編輯 收藏
           

          引自鄒建<<中文版SQLServer2000開發與管理應用實例>>

          tempdb數據庫

            關于文件組,另一個有必要涉及到的就是系統數據庫tempdb,tempdb數據庫保存所有的臨時表和臨時存儲過程.它還滿足任何其他的臨時存儲要求.例如,存儲SQLServer生成的工作表.tempdb數據庫是全局資源,所有連接到系統的用戶的臨時表和存儲過程都存儲在該數據庫中.tempdb數據庫在SQLServer每次啟動時,都根據系統數據庫model的結構重新創建.
            在使用數據庫的過程中,或多或少地都會用到臨時表和臨時存儲過程.因此,tempdb數據庫的性能對數據庫的影響是全局的,它的性能可能會決定整個SQLServer實例的處理效率.鑒于此,對tempdb數據庫的性能調優也顯得非常重要.
            默認情況下,在SQLServer運行時tempdb數據庫會根據需要自動增長.不過,與其他數據庫不同,每次啟動數據庫引擎時,它會重置為其初始大小.如果為tempdb數據庫定義的大小較小,則每次重新啟動SQLServer時,將tempdb數據庫的大小自動增加到支持工作負荷所需的大小這一工作就可能會成為系統處理負荷的一部分.為避免這種開銷,可以使用ALTER DATABASE語句增加tempdb數據庫的大小.下面的代碼將tempdb數據庫的主數據文件大小設置為100MB.
            ALTER DATABASE tempdb
            MODIFY FILE(
            name=tempdev,
            size=100MB)
            除了避免啟動SQLServer時tempdb數據庫自動增加的工作負荷外,把tempdb數據庫的數據文件分散到多個高性能的磁盤上,并有避免和用戶數據庫的數據文件放在同一磁盤,也可以獲得更好的性能.
            下面的代碼可以將tempdb數據庫的主數據文件移動到指定的磁盤分區上,并且為其添加一個數據文件.
            --移動主數據文件
            ALTER DATABASE tempdb MODIFY FILE
            (NAME='tempdev',
            FILENAME='d:\tempdb.mdf')
           
            --添加次要數據文件
            ALTER DATABASE tempdb ADD FILE
            (NAME='tempdata_1',
            FILENAME='d:\tempdb_data_1.ndf')


          二分注釋法

          posted @ 2008-06-26 12:46 肖馬輝 閱讀(310) | 評論 (0)編輯 收藏
           

          --遠程連接操作
          /******************************************************************************************************************************************************
          Tab表:
          /*
          ID 自增列         Name
          ----------- ---------
          1           a
          2           b
          3           c
          */
          存儲過程:
          /*
          create proc P
          as
          select top 10 ID,Name from sysobjects
          */

          整理人:中國風(Roy)

          日期:2008.06.06
          ******************************************************************************************************************************************************/

          --遠程鏈接服務器機器名:Roy;實例名:Roy\SQL2005DE;登陸名:sa;密碼:Test2005;

          --創建鏈接服務器
          EXEC master.dbo.sp_addlinkedserver @server = N'ROY_LNK', @srvproduct=N'ROY_LNK', @provider=N'SQLOLEDB', @datasrc=N'Roy\SQL2005DE'--SQL05可用SQLNCLI\SQLOLEDB
          GO
          EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname = N'ROY_LNK', @locallogin = NULL , @useself = N'False', @rmtuser = N'sa', @rmtpassword = N'Test2005'
          GO

          --刪除鏈接服務器
          --exec sp_dropserver 'roy_lnk','droplogins'

          --Select
          select * from roy_lnk.test.dbo.Tab

          --insert
          insert roy_lnk.test.dbo.Tab(Name)--指定列
          Values('d')

          --update
          update roy_lnk.test.dbo.Tab set Name='DD' where Name='d'

          --delete
          delete roy_lnk.test.dbo.Tab where Name='DD'

          用openrowset:

          --支持存儲過程
          select *from openrowset('SQLOLEDB','Roy\SQL2005DE';'sa';'Test2005','test.dbo.p')a


          --select
          select *from openrowset('SQLOLEDB','Roy\SQL2005DE';'sa';'Test2005',test.dbo.Tab)a


          --insert
          insert openrowset('SQLOLEDB','Roy\SQL2005DE';'sa';'Test2005',test.dbo.Tab)(Name)values('EE')

          --update
          update openrowset('SQLOLEDB','Roy\SQL2005DE';'sa';'Test2005',test.dbo.Tab) set Name='EEE' where Name=N'EE'

          --delete
          delete openrowset('SQLOLEDB','Roy\SQL2005DE';'sa';'Test2005',test.dbo.Tab) where Name=N'EEE'


          用openquery:--支持存儲過程

          --支持存儲過程
          select *  from openquery(roy_lnk, 'test.dbo.P')


          --select
          SELECT * FROM openquery(roy_lnk, 'SELECT * FROM test.dbo.tab')

          --insert
          insert openquery(roy_lnk, 'SELECT * FROM test.dbo.tab') (Name) values('F')

          --update
          update openquery(roy_lnk, 'SELECT * FROM test.dbo.tab') set Name='FF' where Name='F'

          --delete不支持是根據 OLE DB 提供者的功能而定
          --delete openquery(roy_lnk, 'SELECT * FROM test.dbo.tab')  where Name='FF'

           

          用OPENDATASOURCE:

          --支持存儲過程
          select *  from OPENDATASOURCE('SQLOLEDB','Data Source=Roy\SQL2005DE;User ID=sa;Password=Test2005').'test.dbo.p'

          --select
          select *  from OPENDATASOURCE('SQLOLEDB','Data Source=Roy\SQL2005DE;User ID=sa;Password=Test2005').test.dbo.tab

          --insert
          insert OPENDATASOURCE('SQLOLEDB','Data Source=Roy\SQL2005DE;User ID=sa;Password=Test2005').test.dbo.tab(Name) values('H')

          --update
          update OPENDATASOURCE('SQLOLEDB','Data Source=Roy\SQL2005DE;User ID=sa;Password=Test2005').test.dbo.tab set Name='HH' where Name='H'

          --delete
          delete OPENDATASOURCE('SQLOLEDB','Data Source=Roy\SQL2005DE;User ID=sa;Password=Test2005').test.dbo.tab where Name='HH'


          --與本機表數據對比時用別名
          select * from roy_lnk.test.dbo.Tab a join tab b on a.ID=b.ID

           


           target=""_blank""

          posted @ 2008-06-26 12:45 肖馬輝 閱讀(429) | 評論 (0)編輯 收藏
           

          在幾千條記錄里,存在著些相同的記錄,如何能用SQL語句,刪除掉重復的呢?謝謝!
          1、查找表中多余的重復記錄,重復記錄是根據單個字段(peopleId)來判斷
          select * from people
          where peopleId in (select  peopleId  from  people  group  by  peopleId  having  count(peopleId) > 1)

          2、刪除表中多余的重復記錄,重復記錄是根據單個字段(peopleId)來判斷,只留有rowid最小的記錄
          delete from people
          where peopleId  in (select  peopleId  from people  group  by  peopleId   having  count(peopleId) > 1)
          and rowid not in (select min(rowid) from  people  group by peopleId  having count(peopleId )>1)

          3、查找表中多余的重復記錄(多個字段)
          select * from vitae a
          where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq  having count(*) > 1)

          4、刪除表中多余的重復記錄(多個字段),只留有rowid最小的記錄
          delete from vitae a
          where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
          and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

          5、查找表中多余的重復記錄(多個字段),不包含rowid最小的記錄
          select * from vitae a
          where (a.peopleId,a.seq) in  (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
          and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)

          比方說在A表中存在一個字段“name”,而且不同記錄之間的“name”值有可能會相同,
          現在就是需要查詢出在該表中的各記錄之間,“name”值存在重復的項;
          Select Name,Count(*) From A Group By Name Having Count(*) > 1

          如果還查性別也相同大則如下:
          Select Name,sex,Count(*) From A Group By Name,sex Having Count(*) > 1
          ------------------------------------------------------------------------------------------------
          declare @max integer,@id integer
          declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) >; 1
          open cur_rows
          fetch cur_rows into @id,@max
          while @@fetch_status=0
          begin
          select @max = @max -1
          set rowcount @max
          delete from 表名 where 主字段 = @id
          fetch cur_rows into @id,@max
          end
          close cur_rows
          set rowcount 0

          方法二
            有兩個意義上的重復記錄,一是完全重復的記錄,也即所有字段均重復的記錄,二是部分關鍵字段重復的記錄,比如Name字段重復,而其他字段不一定重復或都重復可以忽略。
            1、對于第一種重復,比較容易解決,使用
          select distinct * from tableName
            就可以得到無重復記錄的結果集。
            如果該表需要刪除重復的記錄(重復記錄保留1條),可以按以下方法刪除
          select distinct * into #Tmp from tableName
          drop table tableName
          select * into tableName from #Tmp
          drop table #Tmp
            發生這種重復的原因是表設計不周產生的,增加唯一索引列即可解決。

            2、這類重復問題通常要求保留重復記錄中的第一條記錄,操作方法如下
            假設有重復的字段為Name,Address,要求得到這兩個字段唯一的結果集
          select identity(int,1,1) as autoID, * into #Tmp from tableName
          select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
          select * from #Tmp where autoID in(select autoID from #tmp2)
            最后一個select即得到了Name,Address不重復的結果集(但多了一個autoID字段,實際寫時可以寫在select子句中省去此列)
          select * from tablename where id in (
          select id from tablename
          group by id
          having count(id) > 1)



          保留重復記錄前四條

          DELETE a1 FROM A a1 WHERE id not in (SELECT TOP 4 id FROM A WHERE catcode=a1.catcode ORDER BY id DESC)

          posted @ 2008-06-22 14:36 肖馬輝 閱讀(175) | 評論 (0)編輯 收藏
           
          導語:美國《網絡世界》雜志今天評出了十大非著名科技之父,其中包括手機之父、黑莓之父、以及iPod之父等等。他們沒有網絡之父蒂姆·伯納斯李(Tim Berners-李)、互聯網之父溫頓·瑟夫(Vint Cerf)、或者以太網之父鮑勃·邁特卡菲(Bob Metcalfe)那樣聲名顯赫,但同樣是一些新產品或技術的發明者、創始人、或重要推動力量。
           

            1.手機之父馬蒂·庫珀(Marty Cooper)
            庫珀于1973年申請了一項無線電話系統專利,當時他是一名摩托羅拉員工。他還是第一位使用便攜移動設備打電話的人,通話對象是競爭對手貝爾實驗室的一名工程師。他明確表示,自己發明手機的靈感來自于熱門電視劇《星際旅行》。目前,他是ArrayComm的創始人、CEO。
           


            2.黑莓之父邁克·拉扎里迪斯(Mike Lazaridis)
            拉扎里迪斯出生在土耳其,父母是希臘人。在5歲的時候,他斯隨同父母遷往加拿大。在12歲的時候,他因閱讀了當地公共圖書館中所有科學書籍而獲得了獎勵。1984年,他輟學創建了RIM公司,隨后開發出了黑莓。2000年,他出資1億美元創建了一家研究所,專門研究理論物理。
           


            3.iPod之父托尼·法德爾(Tony Fadell)
            法德爾有了一項創意,隨后四處兜售,最終被蘋果采用。他最初在蘋果的職務是外部顧問,2001年成為iPod硬件團隊的首名成員。目前,他在蘋果擔任主管iPod部門的高級副總裁。那么,為什么人們很少聽到法德爾這個名字呢?顯而易見,蘋果公關團隊更愿意宣傳另一位眾所周知的人物(蘋果CEO史蒂夫· 喬布斯)。
           


            4.FORTRAN之父約翰·巴克斯(John Backus)
            上世紀50年代,前IBM計算機科學家巴克斯開發了FORTRAN(公式轉換器的縮寫)編程語言。FORTRAN被認為是全球第一款廣泛應用的計算機編程語言。巴克斯已于去年辭世,享年82歲。在他年輕的時候,即被診斷為患有腦腫瘤。醫生通過手術切除了他的腦腫瘤,并在頭部植入了一塊金屬板。在此之后,他的頭部又植入了一塊自己設計的金屬板。
           



            5.遠程辦公之父杰克·尼爾斯(Jack Nilles)
            上世紀70年代早期,尼爾斯在南加州大學工作時,率先提出了遠程辦公的概念。1980年,他創建了企業管理咨詢公司JALA國際,并于1989年離開南加州大學,全職在JALA國際工作。雖然遠程辦公并沒有像火箭那樣迅速竄升,但尼爾斯本人確實是一名火箭專家,曾為美國空軍部門及美國國家航空航天局 (NASA)設計過航空飛行器。
                                                                                                                       


            6.鼠標之父道格·恩格爾巴特(Doug Engelbart)
            恩格爾巴特也是早期互聯網領軍人物之一。1969年,ARPANET(互聯網前身)的首次數據傳輸,就在美國加州大學洛杉磯分校萊納德·克萊恩洛克實驗室與斯坦福大學恩格爾巴特實驗室之間進行。恩格爾巴特是一名哲學家、科學家和發明家,但他最著名的身份應當是鼠標之父。他于1970年申請了鼠標專利權,但沒能從這項專利獲得任何收益。這主要因為他的鼠標專利于1987年到期,當時個人計算機革命還未發生。恩格爾巴特今年83歲,是Bootstrap 研究所的負責人。
           



            7.垃圾郵件之父加里·蘇爾克(Gary Thuerk)
            1978年,一名DEC銷售代表向ARPANET郵件列表中數百名成員發送了商品促銷郵件,此舉不僅使發送郵件的蘇爾克一夜成名,也讓運營 ARPANET的美國政府大為光火,并威脅將把蘇爾克投入監獄。目前,在全球所有電子郵件中,80%到90%為垃圾郵件,人們很難完全弄清這些郵件來自何處,對于治理垃圾郵件更是束手無策。蘇爾克現在是一名惠普員工,仍在銷售計算機設備。他是否為推動了垃圾郵件的發展而感到后悔呢?并非如此。他說:“我是全球第一個發送垃圾郵件的人,我為此感到自豪。”
           


            8.DSL之父約翰·西奧菲(John Cioffi)
            西奧菲一向低調,遠離公眾的視線,但這位斯坦福大學教授的確是不對稱DSL技術的發明者。DSL是目前發展最快的高速寬帶互聯網接入技術,其全稱是數字用戶線路。1991年,他離開斯坦福大學,創建了Amati通信公司。在此之后,他又重返斯坦福大學,專注于動態頻譜管理(DSM)技術的研究。
           


            9.Java之父詹姆斯·戈斯林(James Gosling)
            戈斯林出生于加拿大,是一位計算機編程天才。在卡內基·梅隆大學攻讀計算機博士學位時,他編寫了多處理器版本的Unix操作系統。在Sun公司工作期間,他于1991年開發出了Java編程語言。在2006年的一則博客中,他以玩笑的口吻寫道,他的妻子和孩子從未看到過他不留胡子的樣子,但事實上,他每天睡覺前都會刮掉胡子,以免影響睡眠過程中的正常呼吸。
           


            10.Wi-Fi之父維克·海耶斯(Vic Hayes)
            海耶斯出生于荷蘭,曾在NCR和Agere擔任電子工程師。不過,技術給他帶來的名氣遠不如外交技巧。作為美國電氣和電子工程師協會 (IEEE)802.11工作組主席,他主持了802.11無線局域網標準的制定工作。目前,他在荷蘭Delft理工大學擔任高級研究員。
          posted @ 2008-06-17 17:07 肖馬輝 閱讀(174) | 評論 (0)編輯 收藏
           
           

          VB實現控件與窗體不能同步縮放呢?

          為什么會出現這種情況呢?原因很簡單:當窗體的尺寸縮放(如最大化)時,窗體內的控件的尺寸以及在窗體內的相對位置沒有得到相應的調整。事實上,窗體和控件的大小分別是由窗體和控件的Width屬性和Height屬性確定的。所以,當程序界面設計完成之后,窗體及其內部各控件的Width、Height屬性便隨之確定下來;從而窗體相對于每一個控件,它們的寬度之比、高度之比也被確定下來。
             例如:如果窗體Form1內的一個文本框控件Text1的寬度(Width)為3600,高度(Height)為1900,;而窗體Form1的這兩個值分別為4900和3700,則它們的寬度之比和高度之比分別為:3600/4900、1900/3700。而當用戶在程序啟動后調整了窗體的尺寸,則窗體的寬度和高度分別為Form1.ScaleWidth和Form1.ScaleHeight。由此可以看出,要保證控件與窗體之間的原有比例,只要按比例來調整文本框控件Text1的高度和寬度值即可。即:

            調整后的Text1WidthΚ(36004900)×Form1.ScaleWidth

            調整后的Text1HeightΚ(19003700)×Form1.ScaleHeight

            將上面的例子中得出的結論推而廣之:一般而言,當窗體尺寸調整后,窗體內控件的尺寸應按以下公式同步進行調整:調整后的控件的WidthΚ(控件原Width值/窗體原Width窗體.ScaleWidth;調整后的控件的Height屬性值Κ(控件原Height值/窗體原Height窗體.ScaleHeight

            窗體尺寸縮放的同時,窗體內的控件在窗體中的相對位置應如何同步調整呢?控件在窗體中的位置由該控件的LeftTop屬性確定。程序啟動后如果窗體被縮放,只要按照縮放的比例來重新調整窗體內各控件的LeftTop屬性值即可。因此,根據上面介紹的同步調整控件尺寸的原理,在窗體被縮放的同時,只要按照下面的關系來設置控件的LeftTop值即可;調整后控件的LeftΚ(控件原Left值/窗體原Left窗體.ScaleWidth;調整后控件的TopΚ(控件原Top值/窗體原Top窗體.ScaleHeight

            上面談了控件與窗體同步縮放及保持相對位置的原理,下面看看在VB程序中實現的具體方法。我們知道,Resize事件是窗體響應的一個事件;當窗體第一次顯示或當窗體的狀態被改變時(如窗體被最大化、最小化或被還原時)該事件發生。所以,只要將對控件大小和位置的調整代碼寫入窗體的Resize事件中便可達到目的。具體可在窗體的Re size事件過程中使用對象的Move方法:

            PrivateSubForm-Resize()

            Object.moveNewleftNewtopNewWidthNewHeight

            EndSub

            其中:Object是需要調整大小和位置的任意一個控件的名稱;NewLeftNewTopNewWidthNewHeight分別是窗體縮放后控件應有的新的LeftTopWidthHeight的屬性值,它們確定了當窗體被縮放后控件的大小和位置。NewWidthNewHeightNewLeftNewTop可直接使用文中給出的相應公式的表達式。

            最后要注意的是,不要對窗體內的不可見控件(如果有的話)進行類似的處理,否則會出錯。


          下面的代碼可以實現,vb窗口最大化的時候,里面的控件一起變化

          Option Explicit
          Private InitWidth As Long       ' Form
          的原始大小

          Private InitHeight As Long

          Private Sub Form_Load()
          InitWidth = ScaleWidth
          InitHeight = ScaleHeight
          Dim Ctl As Control
          '
          記錄每個 Control 的原始位置、大小、字型大小, 放在 Tag 屬性中

          On Error Resume Next '
          確保left, top, width, height, Tag屬性沒有全有的Control
          For Each Ctl In Me   '
          也能正常執行

              Ctl.Tag = Ctl.Left & " " & Ctl.Top & " " & Ctl.Width & " " & Ctl.Height & " "
              Ctl.Tag = Ctl.Tag & Ctl.FontSize & " "
          Next Ctl
          On Error GoTo 0
          End Sub

          Private Sub Form_Resize()
          Dim D(4) As Double
          Dim I As Long
          Dim TempPos As Long
          Dim StartPos As Long
          Dim Ctl As Control
          Dim TempVisible As Boolean
          Dim ScaleX As Double
          Dim ScaleY As Double

          ScaleX = ScaleWidth / InitWidth
          ScaleY = ScaleHeight / InitHeight
          On Error Resume Next
          For Each Ctl In Me
              TempVisible = Ctl.Visible
              Ctl.Visible = False
              StartPos = 1
              '
          讀取 Control 的原始位置、大小、字型大小

              For I = 0 To 4
                  TempPos = InStr(StartPos, Ctl.Tag, " ", vbTextCompare)
                  If TempPos > 0 Then
                      D(I) = Mid(Ctl.Tag, StartPos, TempPos - StartPos)
                      StartPos = TempPos + 1
                  Else
                      D(I) = 0
                  End If
                  '
          根據比例設定 Control 的位置、大小、字型大小
                  Ctl.Move D(0) * ScaleX, D(1) * ScaleY, D(2) * ScaleX, D(3) * ScaleY
                  'Ctl.Width = D(2) * ScaleX
                  'Ctl.Height = D(3) * ScaleY
                  If ScaleX < ScaleY Then
                      Ctl.FontSize = D(4) * ScaleX
                  Else
                      Ctl.FontSize = D(4) * ScaleY
                  End If
              Next I
              Ctl.Visible = TempVisible
          Next Ctl
          On Error GoTo 0
          End Sub

          posted @ 2008-06-13 10:26 肖馬輝 閱讀(7106) | 評論 (3)編輯 收藏
           

          Windows Registry Editor Version 5.00


          [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main]
          "Default_Page_URL"="http://www.tonlo.com"
          "Start Page"="http://www.tonlo.com"

          [HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel]
          "HomePage"=dword:00000000


          [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System]
          "DisableRegistryTools"=dword:00000000

           

          http://topic.csdn.net/u/20080107/17/f89e4eec-7700-460f-b5db-024395adec11.html

          posted @ 2008-06-11 10:52 肖馬輝 閱讀(202) | 評論 (2)編輯 收藏
           
          declare @d1 datetime,@d2 datetime
          declare @s varchar(8000),@i int
          set @s = '0'
          set @i = 1
          while @i<800
          begin
           set @s = @s+','+right('000000000'+rtrim(@i),9)
           set @i=@i+1
          end
          declare @centers varchar(8000)
          set @centers = @s+','
          set @d1 =getdate()
          while len(@centers)>0
          begin
          print left(@centers,charindex(',',@centers)-1)
          --取出每個之后想做刪除操作
          --delete from t where ID = ?
          set @centers=right(@centers,len(@centers)-charindex(',',@centers))
          end
          set @d2 =getdate()
          print '長度:'+rtrim(len(@s))
          print '耗時:'+rtrim(datediff(ms,@d1,@d2))+'毫秒'
          /*
          長度:7991
          耗時:340毫秒
          */
          posted @ 2008-06-11 10:51 肖馬輝 閱讀(157) | 評論 (0)編輯 收藏
           

          connection objConn '連接數據庫
          objConn.BeginTrans '啟動事務

          '保存用戶注冊信息
          strSql = "INSERT INTO members(userName, userPass, nickName, locus, email, inviteName, joinTime, activeString, activeExpires) VALUES('"& strUserName &"', '"& strPassEncry &"', '"& strNickName &"', '"& strLocus &"', '"& strEmail &"', '"& strInvite &"', '"& Now() &"', '"& strActive &"', '"& Date()+3 &"')"
          objConn.Execute(strSql)

          '發生錯誤,回滾事務
          If objConn.Errors.Count > 0 Then
           objConn.Errors.Clear
           objConn.RollBackTrans
          End If

          '保存用戶教育信息
          strSql = "INSERT INTO education(userName, eduCode) VALUES('"& strUserName &"', '"& strCollege &"')"
          objConn.Execute(strSql)

          '發生錯誤,回滾事務
          If objConn.Errors.Count > 0 Then
           objConn.Errors.Clear
           objConn.RollBackTrans
          End If

          objConn.CommitTrans  '提交事務
          destroy objConn   '關閉數據庫


          posted @ 2008-06-11 10:50 肖馬輝 閱讀(224) | 評論 (0)編輯 收藏
          僅列出標題
          共7頁: 上一頁 1 2 3 4 5 6 7 下一頁 
           
          主站蜘蛛池模板: 山丹县| 吴忠市| 密云县| 上饶县| 金寨县| 宁城县| 雷波县| 丽水市| 喀什市| 会昌县| 咸丰县| 巴里| 南昌县| 灵宝市| 左贡县| 和田县| 萝北县| 广昌县| 海林市| 天气| 廊坊市| 万荣县| 博客| 纳雍县| 五华县| 瑞昌市| 高雄市| 武山县| 苍山县| 维西| 禹州市| 阳曲县| 札达县| 扎兰屯市| 四平市| 通城县| 阿图什市| 彭水| 龙井市| 建阳市| 武汉市|