/*
作用是在用戶表中遷出用戶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 肖马辉 阅读(352) | 评论 (0)编辑 收藏
 

征婚启事:
单身男人,1980年酿造,海拔约 潘长江与姚明之间,体重肯定不及傅彪,历经校园熔炼、军旅锻造,第一职业合法,第二职业也合法,第三职业保密,正搜寻20至24岁平凡美女一名,共享二人世界。希望你有些温柔、带点善良、略显文静、善待老人、喜欢小动物(老鼠除外)、热爱生活中的美好东西(不包括钱),还没有失去纯真。

  你将得到的部分:老公一名(可以用来应付亲戚朋友);帮厨一名(但不对饭菜质量负责);拎包一名(150Kg以下,购物袋不超过20个);肩膀两个(可依靠,可当枕头,可骑……);每月工资约80%(不算奖金及灰色收入);附送:出气筒一支(需 二人场合使用)。

  你可以保留的权利:收拾屋子的习惯(只要不花钱就行);化妆的爱好(化妆品自理);逛街的习惯。

  你将失去的:横着睡一张床的权利;自由若干;所有的孤独。

  由于个人出身环境原因,具以下特征女士勿扰:爱吃减肥药的;吸烟的;把舞池当家、视KTV如命的!

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

posted @ 2008-06-26 12:47 肖马辉 阅读(229) | 评论 (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 肖马辉 阅读(300) | 评论 (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 肖马辉 阅读(419) | 评论 (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 肖马辉 阅读(165) | 评论 (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 肖马辉 阅读(165) | 评论 (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 肖马辉 阅读(7060) | 评论 (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 肖马辉 阅读(189) | 评论 (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 肖马辉 阅读(151) | 评论 (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 肖马辉 阅读(212) | 评论 (0)编辑 收藏
仅列出标题
共7页: 上一页 1 2 3 4 5 6 7 下一页