几乎在BLOG消失的我中秋之感

 心情随笔  没有评论 »
292004
 

流行风终于在两个星期的努力之下重新开张了,投入了两个月的薪水,牺牲了不少睡眠时间,其实也并不知道这样做究竟是为了什么,知道很多东西失去了就无法再回来,可是依旧怀念着那句“我不放弃”,傻傻的我,连带朋友一起帮忙辛苦的更新维护,这次真的会认真的去做站了。

下午在 Office 里,端着咖啡,忽然想起很久没有在工作时间喝咖啡了,也想起了躺在抽屉里的那包所谓的“西亚图拿铁”,一直没舍得喝,仅仅是一包咖啡而已。中秋佳节收到了不少的短信,祝福的言语飘自全国各地,我没有做任何回复,任何一个,并非是因为绝情与冷漠。意外的收到一份 Dinner Invitation ,于是这个中秋节的晚餐同几位并不熟悉的同仁一起享用,其中有几位甚至从没见过,人与人的相识其实就是这么简单。

观前街的角落里飘出了那首《挥着翅膀的女孩》,于是想起了毕业前夕幅海蓝天的那次通宵,回想那时的心情,不禁有点心酸。从来都认为,自己喜欢听歌的理由是因为一首歌曲能够代表一段时间的心情,能够创造一段时间的回忆,如果不失忆,那便是永久性的。想再写一首歌,体验高中时期曾经拥有的音乐创作的乐趣。

给家里打了个电话,轮流的说了句“中秋快乐”,很想买辆车,带父母带爷爷去美丽的地方转转,牛奶会有的,面包会有的,我的未来,我做主。

冷冷清清的BLOG与BBS形成鲜明的对比,外面皎洁的月光透过窗户撒在了阳台上,点燃一根烟,于是又开始键盘的敲打。写到冷清,自然的过度到了平淡,正如我所追求的爱情一样,淡而不腻则足已,不再刻意的追求浪漫,不再故意的创造惊喜,偶尔的感动与真实的关心完全可以让双鱼座的我发挥的淋漓尽致,其实我的世界并不缺阳光,只是我更喜欢有白云飘动的蓝天。

错过了金鸡湖边上的美丽的礼花,深吸一口烟,让烟头在美丽的夜空划一道美丽的弧线,消失在中秋的月光里。

你知道我爱你

 心情随笔  没有评论 »
202004
 

在POPWIND论坛数据丢失之后,才真实的感觉到,它对于我来说有多重要,第一次为了POPWIND留下眼泪,点燃一根烟,打开 Winamp ,刻意的选择了那首《你知道我爱你》,伤感的旋律衬托现在的心情,我的眼睛竟然再次感觉酸痛,不仅仅是为了论坛。。。

好久没有来BLOG写东西了,不知道是因为确实很忙还是什么,其实现在的生活算是开心的,正如我的 Summery Report 里所写的那样,公司的管理,办公的环境,同事的相处,朋友的交流,一切都是优秀的。因为在公司 IT 部的 Presentation 中表现不错,所以赢得了去上海参加2004微软技术大会的资格,也正是因此,有幸再次感受黄浦江的气息。每次去上海都有不同的感受,并非是因为城市的变化,坐在滨江大道的 Starbucks 里,能够感觉到黄浦江特有的气息,真的很近很近,用手机拍了几张全景,习惯了东方明珠的图片,来感受一下在这个 Starbucks 里看黄浦江的感觉

JAVA中regionMatches的用法

 技术学习  没有评论 »
102004
 

看见CTOC中有用到,所以搜索了一下,主要作用是:比较两个子字符串的字符

regionMatches(boolean ignoreCase,int toffset,String other,int ooffset,int len);
regionMatches(int toffset,String other,int ooffset,int len);

上述两个方法用来比较两个字符串中指定区域的子串。入口参数中,用toffset和ooffset分别指出当前字符串中的子串起始位置和要与之比较的字符串中的子串起始地址;len 指出比较长度。前一种方法可区分大写字母和小写字母,如果在 boolean ignoreCase处写 true,表示将不区分大小写,写false则表示将区分大小写。而后一个方法认为大小写字母有区别。由此可见,实际上前一个方法隐含了后一个方法的功能。比如:
String s1= “tsinghua”
String s2=“it is TsingHua”;
s1.regionMatches(0,s2,6,7);
最后一个语句表示将s1字符串从第0个字符“t”开始和s2字符串的第6个字符“T”开始逐个比较,共比较7对字符,由于区分大小写,所以结果为false。
但如果最后一个语句改为:
s1.regionMatches(true,0,s2,6,7);
则结果为true,因为入口参数中true表示忽略大小写区别。

关于Java的substring(int beginindex, int endindex)

 技术学习  没有评论 »
092004
 

Java类库中String类的 substring(int beginindex, int endindex)方法,第二个参数比较奇怪—-endindex实际上是所取子串的下一位

例如 String strA = “2004/03/10″;
System.out.println(strA.substring(0,4)); // 输出 2004

jdk里对这个有描述,但是当想获得一个包含最后一位的子串时,(如上strA,欲取日期)可以写为

System.out.println(strA.substring(8)); 但得换成一个参数的substring(int),真麻烦啊。

System.out.println(strA.substring(8,10)); 可以吗? // 请注意 strA.charAt(10)会出异常的

呵呵,同事告诉我它试过。我试了试,结果是对的。 真是有意思。

我们分析,sun在写这个方法的时候就是为了用endindex - beginindex = n 得到子串的位数,才好从beginindex开始取n位。

使用substring(int, int)的时候要注意 ,如果想循环的取固定位数的子串,不必要对最后一位进行特殊处理了。

死亡的感觉

 心情随笔  没有评论 »
082004
 

醒来的那一刻,我真的以为我已经离开了这个世界,边上围着可爱的同事跟朋友,睁开眼睛看到他们焦虑与欣慰的眼神时,我才知道我还在。可是脑子里却多了一份空白,不知道过去的几个小时究竟发生了些什么。

如今,依旧坐在舒适的宿舍里,面对这台陪伴我三年的PC机,随着音乐敲打着键盘。多了一份安详与平静,往日的焦躁已经消失了,或许经历了才知道生命的珍贵,而经历之后,友情才显得更加的珍贵,朋友的关怀,同事的照料,任何言语都显得那么渺小。

将BLOG升级完毕后,换上了一个崭新的风格,听了几首老歌,将过去在脑海里重新过滤了一遍,那些逝去的已经永久逝去,眼前一切都是美好的,保持健康的身体好好享受吧。

只要我想,我的明天一定灿烂!

ADO相关知识

 技术学习  没有评论 »
032004
 

1.ADO简介
ActiveX Data Objects (ADO) 是微软最新的数据访问技术。它被设计用来同新的数据访问层OLE DB Provider一起协同工作,以提供通用数据访问(Universal Data Access)。OLE DB是一个低层的数据访问接口,用它可以访问各种数据源,包括传统的关系型数据库,以及电子邮件系统及自定义的商业对象。
ADO向我们提供了一个熟悉的,高层的对OLE DB的Automation封装接口。对那些熟悉RDO的程序员来说,你可以把OLE DB比作是ODBC驱动程序。如同RDO对象是ODBC驱动程序接口一样,ADO对象是OLE DB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLE DB提供者(OLE DB provider)。目前,虽然OLE DB提供者比较少,但微软正积极推广该技术,并打算用OLE DB取代ODBC。
ADO向VB程序员提供了很多好处。包括易于使用,熟悉的界面,高速度以及较低的内存占用(已实现ADO2.0的Msado15.dll需要占用342K内存,比RDO的Msrdo20.dll的368K略小,大约是DAO3.5的Dao350.dll所占内存的60%)。同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建。因此你可以只创建一个”Connection”对象,但是可以有多个,独立的”Recordset”对象来使用它。ADO针对客户/服务器以及WEB应用程序作了优化。

2.在哪里能得到ADO
  
   目前ADO1.5版已经可以从微软网站免费下载。到目前为止,微软网站仍是你获取有关ADO最

新信息的最佳场所。ADO1.5是作为OLE DB SDK的一部分提供的。你可以从下面这个网址下载:

http://www.microsoft.com/data/oledb/download.htm

  

在下载之前请先确认OLE DB SDK提供的各项特性。下载文件大约有15M,如果完全安装的话

要占用80M的硬盘空间。如果你只对ADO感举趣,就选择最小安装,这样只会占用你15M的硬盘空

间。关于ADO的网页在:

http://www.microsoft.com/data/ado/adoinfo.htm.

  在这里你可以找到许多关于ADO的示例代码和文章,尤其是在”Workshop”系列的文章中。你

也可以从本站下载ADO2.5的帮助文件。

  尽管OLE DB SDK提供自己的ADO帮助文件,你会发现ADO1.0的帮助文件更易于使用。同时它

还向你提供ADO对象模型的图示

3.ADO是如何组织起来的

以前的对象模型,如DAO和RDO是层次型的。也就是说一个较低的数据对象如Recordset是几个较高层次的对象,如Environment和QueryDef,的子对象。在创建一个QueryDef对象的实例之前,你不能创建DAO Recordset对象的实例。但ADO却不同,它定义了一组平面型顶级对象.
最重要的三个ADO对象是Connection, Recordset和Command. 本文将主要介绍Connection和Recordset这两个对象。每个Connection的属性定义了与数据源的连接。Recordset对象接收来自数据源的数据。Recordset可以与Connection一起起使用,先建立一个连接,然后获取数据。尽管如此,Recordset也可以被单独创建,其Connection参数可以在Open属性定义。

4.如何使用ADO

一旦安装了ADO,在VB的工程->引用对话框中你就可以看到象下图所示的东西了:

选择 “ActiveX Data Objects 1.5 Library” (ADODB).在其下的 “ADO Recordset 1.5 Library”是一个客户端的版本(ADOR),它定义了有聚的数据访问对象。ADOR 对于客户端的数据访问来说是足够的了,因为你不需要Connection对象来建立与远程数据源的联系。

如果你想要访问更多的外部数据源,你需要安装这些外部数据源自己的OLE DB Provider,就象你需要为新的数据库系统安装新的ODBC驱动程序一样。如果该外部数据源没有自己的OLE DB Provider,你就得使用OLE DB SDK来自己为这个外部数据源创建一个OLE DB Provider了。这已不是本文讨论的范围了。

5.示例

下面的示例代码以Northwinds数据库作为远程数据源,然后用ADO来访问它。首先在控制面板中打开“32位数据源”,单击“添加”按钮。在弹出的对话框中选择 “Microsoft Access Driver (*.mdb)” 作为数据源驱动程序。

然后按下图所示,在对话框中填写下面的内容

选择数据库Northwinds所在路径。单击完成,退出ODBC设备管理器。

启动一个新的VB工程,在窗体的Load事件中输入下面的代码:

Private Sub Form_Load()

Dim cn As ADODB.Connection
Set cn = New ADODB.Connection

'Set Connection properties
cn.ConnectionString = “DSN=RDC Nwind;UID=;PWD=;”
cn.ConnectionTimeout = 30
cn.Open

If cn.State = adStateOpen Then _
MsgBox “Connection to NorthWind Successful!”

cn.Close

End Sub
按F5运行程序,看看,一个消息框弹出来告诉你连接成功了。请注意,这里我特别注明了是ADODB.Connection,而不是ADOR.Connection,这样做是为了将二者区分开(如果你引用了ADODB和ADOR的话,这样做很有必要)。连接字符串看上去同RDO的连接字符串差不多。事实上,二者确实差不多。
如果我们要访问一个SQL server数据库,你的Connection代码看上去应象下面所示:

'设置连接属性cn.Provider = “MSDASQL”
cn.ConnectionString = “driver={SQL Server};” & “server=prod1;uid=bg;pwd=;database=main”
cn.Open

“Provider”属性指向SQL Server的OLE DB Provider.
回到我们的示例程序,让我们创建一个Recordset对象来访问“Orders”表,并从该表的”ShipCountry”字段中产生头十个不重复的国家名。修改窗体Load事件中的代码,让它看上去象下面这样。

Private Sub Form_Load()

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset

Dim sSQL As String
Dim sOut As String
Dim Count As Integer

Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

' Set properties of the Connection.
cn.ConnectionString = “DSN=RDC Nwind;UID=;PWD=;”
cn.ConnectionTimeout = 30
cn.Open

If cn.State = adStateOpen Then _
MsgBox “Connection to NorthWind Successful!”

sSQL = “SELECT DISTINCT Orders.ShipCountry FROM Orders”
Set rs = cn.Execute(sSQL)

'Enumerate the recordset
sOut = “”
For Count = 1 To 10
sOut = sOut & rs(“ShipCountry”) & vbCrLf
rs.MoveNext
Next Count

MsgBox sOut, vbExclamation, “ADO Results”
cn.Close

End Sub
运行程序后,你会看到如下图所示的消息框。

不幸的是,目前这个Recrodset对象是只读的和forward cursor。如果你想要获取更多的功能,你需要创建一个独立的Recordset对象,该对象拥有自己的Connection属性,就象下面的代码所示:

Private Sub Form_Load()

Dim rs As ADODB.Recordset

Dim sSQL As String
Dim sOut As String
Dim Count As Integer

Set rs = New ADODB.Recordset

sSQL = “SELECT DISTINCT Orders.ShipCountry FROM Orders”

rs.Open sSQL, “DSN=RDC Nwind;UID=;PWD=;”, adOpenDynamic

'Report Recordset Connection information
MsgBox rs.ActiveConnection, , “Connection Info”

'Enumerate the recordset
sOut = “”
For Count = 1 To 10
sOut = sOut & rs(“ShipCountry”) & vbCrLf
rs.MoveNext
Next Count

MsgBox sOut, vbExclamation, “ADO Results”

rs.Close

End Sub
上面代码返回的结果同前例一样,但是本代码中的Recordset是独立的。这一点是DAO和RDO做不到的。Recordset对象的Open方法打开一个代表从SQL查询返回的记录的游标。虽然你可以用Connection对象同远程数据源建立连接,但请记住,在这种情况下,Connection对象和Recordset对象是平行的关系。

Powered by WordPress 3.3.1 CopyRight 2004~2012, Sonic Tang

虚拟主机赞助商:海波,苏ICP备11082989号

Suffusion theme by Sayontan Sinha