无题
随笔- 63  文章- 22  评论- 28 
博客园  首页  新随笔  联系  管理  订阅 订阅
置顶随笔
[置顶]谈谈How to Programming-------各大数据库中的SQL语法Help权威解释,不会让人产生歧义!
摘要: 各大数据库中的SQL语法Help权威解释,不会因为English--->Chinese后让人产生歧义。写程序的您,想想您小时候怎么查字典、词典,读拼音写文章的吧!那么现在的您是否也应该,有空翻翻每一种软件的Help、词汇表呢?温故而知新,不是吗?或许您有会有新的、启发、收获了。MS Access:词汇表&Help左联接左外部联接包含两个表中第一个表(左表)中的所有记录,即使与第二个表...阅读全文
posted @ 2008-12-16 10:36 Borcala 阅读(366) 评论(0) 编辑
2009年1月19日
我的文件
2009年1月19日13:32:43ygc,|
TitleType text here...
TitleType text here...
/Files/borcala/readme.txt/Files/borcala/license.txt[hjp3]hjptype=song&player=2&playerID=1&bg=0xE9F7FE&leftbg=0x73BE44&lefticon=0xFFFFFF&rightbg=0xFFAA00&rightbghover=0x999999&righticon=0xFFFFFF&righticonhover=0xffffff&text=0x666666&slider=0x666666&track=0xFFFFFF&border=0x666666&loader=0x9FFFB8&soundFile=http://www.baidu/mp3.mp3&autostart=true&width=290&height=24[/hjp3]
posted @ 2009-01-19 13:48 Borcala 阅读(129) 评论(0) 编辑
2008年12月16日
谈谈How to Programming-------各大数据库中的SQL语法Help权威解释,不会让人产生歧义!

各大数据库中的SQL语法Help权威解释,不会因为English--->Chinese后让人产生歧义。写程序的您,想想您小时候怎么查字典、词典,读拼音写文章的吧!那么现在的您是否也应该,有空翻翻每一种软件的Help、词汇表呢?温故而知新,不是吗?或许您有会有新的、启发、收获了。

MS Access:

词汇表&Help

左联接
左外部联接包含两个表中第一个表(左表)中的所有记录,即使与第二个表(右表)中记录的值不匹配。
左外部联接
一种外部联接,其中查询的 SQL 语句中 LEFT JOIN 操作左侧中的所有记录将被添加到 Recordset 对象,即使在右侧表中的联接字段中没有匹配的值。仅当联接字段中有匹配的值时,右侧表中的记录才与左侧表中的记录合并。如果左侧记录没有匹配的值,则会将一行 Null 值联接到右侧。
主键
一个或多个字段,其值可唯一标识表中的每一个记录。在一个关系中,主键用于从另一个表中引用表中的特定记录。当从另一个表引用主键时,主键称为外键。您只能具有一个主键。例如,在 Employees 表中,可以使用社会保障号作为主键。
主表
在具有外表的一对多关系中,两个相关表的“一”方。通常,主键表用于建立或实施参照完整性。
右联接
右外部联接包含两个表中第二个(右)表内的所有记录,即使没有与第一个(左)表中的记录匹配的值。例如,您可以将 LEFT JOIN 用于 Departments(左)和 Employees(右)表以便选择所有部门(包括未分配雇员的部门)。若要选择所有雇员(包括未分配到任何部门的雇员),可以使用 RIGHT JOIN。
右外部联接
一种外部联接,其中查询的 SQL 语句中 RIGHT JOIN 操作右侧的所有记录都被添加到 Recordset 对象,即使在左侧表的联接字段中没有匹配的值。仅当在联接字段中有匹配的值时,左侧表中的记录才与右侧表中的记录合并。
 
自联接
一种联接,其中当联接字段中存在匹配的值时,一个表中的记录与同一表中的其他记录进行合并。自联接可以是内联接或外联接。当询问分层问题时(例如,显示所有经理和向经理提出报告的人),自联接非常有用。
字符串比较
 
字段数据类型
以下是 Field 数据类型 - Big Integer、Binary、Boolean、Byte、Char、Currency、Date/Time、Decimal、Double、Float、GUID、Integer、Long、Long Binary (OLE Object)、Memo、Numeric、Single、Text、Time、TimeStamp 以及 VarBinary。
 
子查询
子查询是嵌套在 SELECT、SELECT...INTO、INSERT...INTO、DELETE 或 UPDATE 语句或者其他子查询中的 SELECT 语句。
存储在数据库中表的信息类别或数据列。包含特定信息项(例如,姓氏)的数据库表中的元素。
 
追加查询
一种操作查询,将新记录添加到现有表或查询的结尾。追加查询不会返回记录(行)。SQL 语法包含 INSERT 关键字。
组合查询
一种查询,其中包含至少一个操作查询(复制或更改数据的查询)和至少一个选择查询(在不更改数据的情况下返回 Recordset)。在 DAO 中,可通过将两个或多个 SQL 语句(用分号隔开)放置在 QueryDef 对象的 SQL 属性中,创建组合查询。

 

联合查询
一种 SQL 特定的选择查询,用于创建快照类型的 Recordset 对象(此对象包含两个或多个已删除任何重复记录的表中所有指定记录的数据)。若要包含副本,请添加关键字 ALL。例如,Customers 表和 Suppliers 表的联合查询将产生包含所有既是客户又是供应商的快照类型的 Recordset。

 

 

交叉表查询
一种查询,它对记录进行求和、平均值、计数或其他类型的总计计算,然后将结果分组为两种信息类型:一种沿网格左侧向下排列(行标题),另一种跨顶部排列(列标题)。例如,“罗斯文”示例数据库中的“按产品季度订单”查询是一个交叉表查询。

 

 

级联
一个过程,其中一个操作可触发其他操作。例如,当定义两个(或多个)表的级联更新关系后,对主表中主键的更新将自动触发(级联)对外表的更改。现在,可通过 SQL DDL 定义级联。
级联删除
对于在表之间实施参照完整性的关系,级联删除是一个选项。通过此选项,如果删除主表中的记录,可自动删除相关外表中的所有相关记录。例如,如果您在启用级联删除选项的情况下,在“客户”表(主表)与“订单”表(外表)之间建立了一个关系,那么当删除“客户”表中的记录时,“订单”外表中所有与该客户关联的订单也随之删除。现在,可通过 SQL DDL 定义级联删除。
级联 NULL
对于在表之间实施参照完整性的关系,级联 NULL 是一个选项。通过此选项,如果删除主表中的行,可使用 NULL 值自动更新相关外表中的所有相关记录的外键。现在,可通过 SQL DDL 定义级联 NULL。例如,如果您在启用级联 NULL 选项的情况下,在“客户”表(主表)与“订单”表(外表)之间建立了一个关系,那么当删除“客户”表中记录的主键时,“订单”外表中所有与该客户关联的订单也被更改为具有 NULL 值。
级联更新
对于在表之间实施参照完整性的关系,级联更新是一个选项。通过此选项,如果更改主表中记录的主键,可自动更新相关外表中所有相关记录的主键。例如,如果您在启用级联更新选项的情况下,在“客户”表(主表)与“订单”表(外表)之间建立了一个关系,那么当更改“客户”表中记录的主键时,“订单”外表中所有与该客户关联的订单也随之更改。现在,可通过 SQL DDL 定义级联更新。

 

外键
一个或多个表字段,用于引用其他表中的主键字段。外键表示表如何相互关联(外键字段中的数据与主键字段必须匹配)。例如,有效部件号列表会包含清单表(包含有效部件号的引用)的外键。当建立数据库的参照完整性时使用。
外表
向数据库中的其他表提供外键的表。通常,您使用外表建立或实施参照完整性。外表通常位于一对多关系中的“多”方。外表的一个示例是 customer orders 表。
外部联接
一种联接,其中一个表中的所有记录都被添加到 Recordset 对象,即使第二个表中联接的字段中没有匹配的值。仅当联接的表中具有匹配的值时,第二个表中的记录才与第一个表中的记录合并。如果没有匹配值,那么将联接 Null 记录。

 

等效联接
一种联接,其中仅当联接表中有相等值时,才合并两个表中的记录,并将记录添加到 Recordset 对象。也称为内部联接。

 

视图
视图是虚拟表的 ANSI 定义。视图与 Access 中的存储查询(包含不带参数的 SELECT 语句)是同义的。视图是一个在执行时具体化的存储定义。它与表不同,因为它实际上不存储任何数据。它只返回数据。可以使用通过 Microsoft OLE DB Provider for Jet 开放的新 ANSI SQL CREATE VIEW 语法创建视图。此外,可以创建过程以允许使用 SQL DML 语句和带有参数的 SELECT 语句。这可使用通过 Microsoft OLE DB Provider for Jet 开放的 CREATE PROCEDURE 语法完成。
 
参数
包含一个可更改以便影响查询结果的值的元素。例如,返回有关雇员数据的查询可能具有雇员名称的参数。然后,您可以使用一个 QueryDef 对象查找有关任何雇员的数据,方法是在运行查询之前,将参数设置为一个特定名称。在 Microsoft Jet 4.X 版中使用 Microsoft? OLE DB Provider for Jet 时,可通过 ANSI 问号 (?) 参数标记,将参数从过程中开放。使用 SQL 语法,您可以创建 QueryDef 的等效物。
参数查询
一种查询,它在运行之前要求提供一个或多个条件值(例如 Redmond for City)的。从严格意义上讲,参数查询不是一种单独的查询;而是扩展了其他查询的灵活性。在 Microsoft Jet 4.X 版中使用 Microsoft OLE DB Provider for Jet 时,可通过 ANSI 问号 (?) 参数标记,将参数从过程中开放。使用 SQL 语法,您可以创建 QueryDef 的等价物。
传递查询
一种 SQL 特定的查询,可用于将命令直接发送到 SQL 数据库服务器(例如 Microsoft SQL Server)。通过传递查询,您可以使用服务器上的表,而不是链接这些表。传递查询用于执行 SQL 查询和系统特定的命令(使用只有服务器知道的 SQL 语句编写)。传递查询可能会(也可能不会)返回记录。如果它返回记录,那么始终在快照中返回。
查询
数据库的形式化指令,以便按照查询中指定的方式,返回记录集或在记录集上执行指定操作。例如,下列 SQL 查询语句将返回记录:SELECT CompanyName FROM Publishers WHERE Region = 'NY',您可以创建并运行选择、操作、交叉表、参数以及 SQL 特定的查询。
参照完整性
添加、更改或删除记录时设置的用于建立和保留表间关系的规则。强制参照完整性可禁止用户向没有主键的联接表添加记录、在将导致联接表中出现孤立记录的主表中更改值、以及在没有匹配的相关记录时删除主表中的记录。如果您为关系选择了 dbRelationDeleteCascade 或 dbRelationUpdateCascade 选项,那么 Microsoft Jet 数据库引擎将允许更改和删除,但更改或删除相关记录可确保仍然实施规则。通过 Microsoft Jet 4.X 版通过 Microsoft OLE DB Provider for Jet 公开了一组更加丰富的 ANSI SQL,同时还公开了 ANSI 级联 NULL 参照操作。


D
笛卡儿积
通过联接两个关系表,将第一个表中的行与第二个表中的所有行以所有可能的顺序进行组合而得到的结果。通常,笛卡儿积通过执行 SQL SELECT 语句,在 FROM 子句中引用两个或多个表,并且不包含表示如何联接表的 WHERE 或 JOIN 子句得到。
.....
SQL Server:
Oracle:
MSDN:
posted @ 2008-12-16 10:36 Borcala 阅读(366) 评论(0) 编辑
2008年11月26日
.NET环境下水晶报表使用总结

.NET环境下水晶报表使用总结

水晶报表是一个优秀的报表开发工具,本人在开发通用管理系统的时候,所有报表都使用水晶报表,其简单、易用和强大的功能令笔者倍加喜爱,现将水晶报表使用手记呈现给大家。

 

一、在使用自带的水晶报表时,请注册,否则只能使用30次

水晶报表注册码
注册号:6707437608
密码:AAP5GKS0000GDE100DS

 

二、使用CrystalReportViewer进行预览

CrystalReportViewer控件允许在应用程序中查看 Crystal Report。ReportSource 属性用于设置要查看哪个报表。该属性设置之后,报表显示在查看器中。报表源可以是ReportDocument、报表文件的路径,也可以是强类型报表。

1.      打开“工具箱”,并将一个 CrystalReportViewer 拖到窗体上,我们命名为rptVew。

2.      通过拖放操作将 Windows 窗体查看器调整到希望的大小并将其移动到所需位置。

3.      当运行应用程序时,报表将显示在查看器中。

三、创建新报表

1.      指向“添加”,单击“添加新项”。

2.      在“添加新项”对话框中,从“模板”区域选择 Crystal Report,将报表命名为rptClient,单击“打开”。

3.      在 Crystal Report 库中,选择下列选项之一:

·         使用报表专家 — 指导您完成报表的创建过程,并将您的选择添加到 Crystal Report Designer。

·         作为空白报表 — 打开 Crystal Report Designer。

·         来自于现有的报表 — 创建新报表,它与指定的另一报表设计相同。

注意   Crystal Report 库包含许多专家,可以指导您完成数个特定类型报表的创建工作。您可能希望使用专家来创建最初的报表,以确定哪种报表构造方法适合您的需要。

4.      单击“确定”按钮。

如果选择使用“报表专家”,便会出现“报表专家”对话框,并带有数据资源管理器。为每个文件夹选择所需数据,完成“报表专家”选项卡界面上的操作,然后单击“完成”来访问 Crystal Report Designer 和您的报表

四、是否需要动态设置数据源?

Crystal Reports 通过数据库驱动程序与数据库连接。每个驱动程序都被编写为可处理特定数据库类型或数据库访问技术。

拉和推模型

为了向开发人员提供最灵活的数据访问方法,Crystal Reports 数据库驱动程序被设计为可同时提供数据访问的拉模型和推模型。

拉模型

在拉模型中,驱动程序将连接到数据库并根据需要将数据“拉”进来。使用这种模型时,与数据库的连接和为了获取数据而执行的 SQL 命令都同时由 Crystal Reports 本身处理,不需要开发人员编写代码。如果在运行时无须编写任何特殊代码,则使用拉模型。

推模型

相反,推模型需要开发人员编写代码以连接到数据库,执行 SQL 命令以创建与报表中的字段匹配的记录集或数据集,并且将该对象传递给报表。该方法使您可以将连接共享置入应用程序中,并在 Crystal Reports 收到数据之前先将数据筛选出来。

四、从 ADO.NET 数据集制作报表

从数据库创建数据集对象

1.      在项目中新建一个架构文件:

a.      在解决方案资源管理器中,右击项目名,指向“添加”,然后单击“添加新项”。

b.      在“添加新项”对话框的“类别”区域,展开文件夹,然后选择“数据”。

c.      在“模板”区域选择“数据集”。

d.      接受默认名称 Dataset1.xsd。

这就创建了一个新的架构文件 (Dataset1.xsd),以后将用它来生成强类型数据集。该架构文件将显示在 ADO.NET 数据集设计器中。

2.      指定数据库位置:

a.      在服务器资源管理器中,右击“数据连接”并选择“添加连接”。

b.      在“数据链接属性”对话框中,单击“提供程序”选项卡,然后选择一个提供程序(例如 Microsoft OLE DB Provider for SQL Server)。

c.      单击“连接”选项卡,然后指定您的数据库所在位置。在所需位置输入服务器和登录信息。

d.      单击“确定”按钮。

此时,您的数据库及其表和字段就出现在服务器资源管理器的“数据连接”节点下面。

3.      在解决方案资源管理器中,双击 Dataset1.xsd (如果它尚不是活动视图)。

Dataset1.xsd 现在应显示在“数据集”选项卡中。

4.      若要为数据集建立架构,请将需要的表从服务器资源管理器中拖动到 Dataset1.xsd 的“数据集”选项卡上。

5.      单击“保存 Dataset1.xsd”来保存“Dataset1.xsd”文件。

6.      在“生成”菜单上,单击“生成”为项目生成数据集对象。

ADO.NET 数据集对象提供数据的描述,从它可以向 Crystal report 添加表。使用 Crystal Report Designer 中的“数据库专家”从 ADO.NET 数据集对象添加表。

请在使用“报表专家”创建新报表时调用“数据库专家”。或者,要从一个已经使用 ADO.NET 建立好的报表中访问“数据库专家”,请在 Report Designer 中右击,指向“数据库”,然后单击“添加/删除数据库”。

将报表连接到 ADO.NET 数据集对象

1.      在“数据库专家”中,展开“项目数据”文件夹。

2.      展开“ADO.NET 数据集”文件夹。

3.      选择所需数据集对象。

例如,如果当时使用的是从项目“WindowsApplication1”的架构文件“Dataset1.xsd”中生成的数据集对象,则应该选择“WindowsApplication1.Dataset1”。

4.      选择要向报表中添加的表,和使用其他数据源一样。

 

 

 

 

 

 

 

 

 

 

五、动态改变数据源的代码

 

               Dim dsdataSet As New DataSet()

                Dim oRpt As New rptClient()   '已建立的报表rptClient

                请读者自行填充数据集dsdataSet

                '使用“报表引擎”对象模型将填充的数据集,传递给报表

                oRpt.SetDataSource(dsdataSet.Tables(0))

                ' 将带有数据的报表对象绑定到 Windows 窗体查看器,rptVew(CrystalReportViewer控件)

                rptVew.ReportSource = oRpt

注意   FillDataSet 方法可连接到指定的数据库,提取数据,然后断开数据库连接。如果您希望将数据库中的多个表添加到报表中,请使用 SQL JOIN 语句将这些表联接在一起;然后在 FillDataSet 方法中指定一个结果表

六、创建主从报表

在报表中,有许多报表是主从表结构,比如订单与订单商品明细,订单是一个表中的一条记录,而分录是另一个表中的多条记录,两个表通过一个字段关联起来,这种报表可利用其分组功能实现,

1.      新建一个工程

2.      往FORM1中添加一个CrystalReportViewer控件

3.      在服务噐资源管理器中连接到SQL SERVER 2000上的Northwind数据库

4.      添加一个数据集Dataset1,将服务器资源管理器中的Orders和 Order Details加入到数据集中。

5.      添加一个水晶报表,使用报表专家,在项目数据中选择“ADO.NET数据集”,插入表Orders和 Order Details,“链接”中是关联字段的链接,在“字段”中选择要显示的主表和明细表的字段,组中选择分组依据为Orders表OrdersID字段,总计,图表,选择(可进行筛选),样式(可设置报表标题),可自行设置。设置完后,点击完成。

6.      在报表设计器中调整需要显示的字段的位置、宽度等。

7.      在窗口中添加代码。

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim oRpt As New CrystalReport1()

        Dim dsdataSet As New Dataset1()

 

        Dim CN As New Data.SqlClient.SqlConnection("data source=PMSERVER;initial catalog=Northwind;user id=sa;password=sa")

        CN.Open()

        Dim daOrders As New Data.SqlClient.SqlDataAdapter("select * from orders", CN)

        daOrders.Fill(dsdataSet, "orders")

 

        Dim daDetails As New Data.SqlClient.SqlDataAdapter("select * from [Order Details]", CN)

        daDetails.Fill(dsdataSet, "Order Details")

 

        '使用“报表引擎”对象模型将填充的数据集,传递给报表

        oRpt.SetDataSource(dsdataSet)

        CrystalReportViewer1.ReportSource = oRpt

    End Sub

8、运行程序

 

 

 

七、用程序改变报表中text的文本

代码如下:

                Dim GetTextObject As TextObject

                ' 按名称获取 ReportObject,将其转换为 TextObject,并返回此对象。

                GetTextObject = orpt.ReportDefinition.ReportObjects.Item("text13")

                GetTextObject.Text = "XXXX系统"

 

总结:水晶报表具有非常强大的功能,还可进行导出WORD、EXCEL、RTF等文件,还可生成复杂、漂亮图表,是进行WEB和WINDOWS报表开发的利器。

 

(此文部分资料来自MSDN)

Author:李洪根

E-MAIL:lihonggen0@163.com 


 

End of《.NET环境下水晶报表使用总结》

posted @ 2008-11-26 15:32 Borcala 阅读(281) 评论(0) 编辑
2008年2月19日
.net(C#)开发小技巧漫谈
摘要: .net(C#)开发小技巧漫谈之三:关于在Web开发中绑定数据的三种方法 本例完全代码下载:StrongTypeDataBinding.rar六,关于web开发中的数据绑定 在web开发中,数据绑定是所有程序员都会遇到,并且经常处理的问题。下面就这个小问题和大家探讨一下关于强类型支持在这个问题中的应用。拙劣不当之处,敬请各路高手斧正。 先look一眼这个demo截图:  先简单说一下,在我们的数据...阅读全文
posted @ 2008-02-19 00:59 Borcala 阅读(261) 评论(1) 编辑
2008年2月18日
奥本海默(J. Robert Oppenheimer)
奥本海默
奥本海默(J. Robert Oppenheimer)1904年出生在纽约一个富裕家庭。由于家道中落,法西斯主义的崛起,到他成为伯克莱加州大学物理学教授的时候,已经是一个政治观念左倾激进的人了。

1942年,奥本海默入选一个物理学家团体,评估制造原子弹的可能性。主持美国政府这个“曼哈顿计划”的戈罗夫斯将军(Gen. Leslie R. Groves)深为奥本海默的思想和才华所吸引,他不顾监督“曼哈顿计划”的一些安全官员的反对,将奥本海默任命为洛斯·阿拉莫斯实验室(the Los Alamos Scientific Laboratory)的主任。

这个新的实验机构在1943年4月成立的时候只有几百名科学家,但是迅即发展成一个拥有六千名男女专家的“秘密之城”。二十七个月以后,这些专家在他们昵称为“奥匹”的奥本海默领导下,成功地制造出世界上第一个原子弹。
洛斯·阿拉莫斯的人们一致认为,没有奥本海默的非凡领导才能,原子弹赶在战争结束之前实验成功,并且投入使用,是不可能的。对于成为美国原子弹之父的奥本海默来说,这是一种骄傲,更是一个沉重的负担。

位于美国新墨西哥州旷野中的“秘密之城”洛斯·阿拉莫斯范围很大,星散着许多低矮的办公室、实验室。奥本海默不是驾驶一辆军用吉普,就是开着他自己的那辆大型黑色别克,在这些办公室、实验室之间出没。每到一处,他总是坐在房间的最后面,不停地抽烟,静静地聆听大家的讨论。他的出现常常可以激活人们的更高想像能力。

物理学家威斯科夫(Victor Weisskopf)说:“每当一个新的计划开始试行,或者一个新的概念开始酝酿,奥本海默就会出现在那个实验室或者讨论会现场。大部分时候,他都不会提出他自己的见解或者建议。他的重大影响来自其他方面。他的连续、长时间出现,使我们强烈地感觉到,他是和我们直接在一起的。”

理论物理部主任贝舍(Hans Bethe)回忆起一次讨论会,主题是已经辩论过多次没有得到结论的熔化钚的容器问题。听了辩论以后,奥本海默站起来做了一个总结。他没有直接说哪一种意见是对的,但是当他离开会场的时候,大家都已经明白最后的结论是什么了。

1944年底,盟军登陆诺曼底六个月以后,形势已经非常清楚:欧洲战事行将结束。洛斯·阿拉莫斯的科学家们开始从道德角度,思考继续研制这种大规模杀人武器的必要性。实验物理部主任威尔森(Robert Wilson )就此问题和奥本海默进行了长时间谈话。他建议,举行一个正式的会议来公开讨论原子弹是否必要的问题。威尔森发现奥本海默面有难色:“他建议我们说点别的什么,因为他不想让那些安全人员来找我的麻烦。”

尽管对奥本海默心怀尊敬,威尔森还是在洛斯·阿拉莫斯遍贴告示,宣布举行一次公开会议,讨论“原子弹对文明的冲击”问题。

那次会议有二十个人参加。令威尔森意外的是,奥本海默准时出席会议,聆听了大家的讨论。威尔森回忆道:“我们进行了一次深入畅快的讨论,讨论的主题是:大战胜利在即,为什么还要制造原子弹。”

年轻的爆炸技术物理学家罗森(Louis Rosen)记得奥本海默在一次讨论会上的演讲,题目是“美国对人类社会使用这样的武器是否正确”。奥本海默强调,身为科学家,在如何使用原子弹这样的问题上,我们发表意见的权利和普通公民是一样的。罗森说,奥本海默是一个“非常雄辩而且有说服力的人”。

化学专家赫契菲尔德(Joseph O. Hirschfelder)也记得一次类似的讨论会,举行地点是洛斯·阿拉莫斯一处矮小的木屋。那是1945年初一个寒冷的星期天黄昏,天降暴雨。奥本海默说,尽管我们大家都注定生活在永久的恐惧之中,但是, 这样一颗炸弹有可能结束所有的战争。这样的一个希望对于许多正在组装原子弹的科学家们有相当的说服力。

在另外的场合,奥本海默也说过,如果世界上的人们不了解这样一种新型武器已经问世,这场战争是不应该结束的。如果原子弹依旧是一个军事秘密,那么下一次大战必定是一场原子弹战争,并且会被用来进行突然袭击。科学家必须走在前面,他解释道,立足在一个至少已经检测过的地方。

1945年4月12日,正好是洛斯·阿拉莫斯实验室建立两周年,传来了罗斯福总统逝世的消息。奥本海默在吊唁罗斯福总统的会议上说,多年来我们大家都经历了巨大的痛苦和恐惧,罗斯福总统使得全世界亿万人民有了信心:我们在这场战争中所做出的牺牲,将使一个更加适合人类文明的新世界诞生。他的结论是:“我们应该献身于这个理想,使这个壮丽事业不会因为罗斯福总统的死亡而中止。”

他始终相信,罗斯福总统和他的手下,对这个威力恐怖的新武器的使用需要一个新思路这个事实是了解的。吊唁会后,他对助手霍金斯(David Hawkins)说:“罗斯福是个伟大的建筑师。现在,杜鲁门也许会是个好工匠吧。”

杜鲁门入主白宫以后,太平洋战场进入了最血腥的杀戮阶段。1945年3月9日晚上,三百三十四架B-29轰炸机向东京投下了无数吨凝固汽油弹和高爆炸弹,高温火焰杀死了十万人,将东京十六平方哩的地区一举夷为平地。这样的火焰轰炸袭击一直持续到七月。日本数十万平民丧生,仅剩下五个城市没有毁灭。这是纯粹的战争行动,轰炸不再仅仅针对军事设施,盟军的目标是摧毁整个国家。

火海轰炸对普通美国人来说不是秘密。大家从每天的报纸上都可以看到具体的报道。这种整体摧毁城市的战略势必引起人们的道德反思。奥本海默回忆起战争部长斯汀生(Henry Stimson)对他说过的话:“他告诉我,如果没有人起来抗议我们现在对日本进行的空中轰炸所造成的异常重大生命牺牲,那是一件非常可怕的事情。他没有说,我们应该停止对日本轰炸,只是觉得,在美国居然没有人起来抗议,事情有点不对头……”

1945年4月30日,希特勒自杀。七天以后,德国投降。物理学家西格瑞(Emilio Segre)的第一个反应是“我们动手得太晚了”。他认为,制造原子弹的惟一目的就是轰炸德国。

西格瑞的想法代表了洛斯·阿拉莫斯实验室大多数科学家的意见。他后来在回忆录中说:“原子弹不能再用来对付纳粹,大家疑虑丛生。这种疑虑在正式报告中是看不出来的。我们在各种私下的场合讨论这个问题。”

5月31日,奥本海默出席了斯汀生组织的内务委员会(Interim Committee)会议。这是一个由政府官员组成的特别机构,目的是为战争部长参赞未来的原子能计划。

斯汀生权势熏天,控制了舆论宣传大权。不过,原子弹是否投向日本这个问题没有结论。事实上,这是一个早已经决定了的问题,决策者是白宫,而不是制造原子弹的科学家们。

战争部长告诉奥本海默和别的科学家,他和内务委员会的其他官员都认为,原子弹“不但是一种新型武器,而且使得人和自然的关系发生了一种革命性变化”,“原子弹是一种科学怪物,可能将人类吞噬”。斯汀生强调,原子弹可以巩固世界和平。原子弹的出现,“从各种角度来看,都远远超越了这场正在进行的战争的需要”。

斯汀生询及原子能的非战争用途时, 奥本海默开始发言。他首先强调,在现在阶段,科学家们最关心的是如何缩短战争。由于原子物理学的基本知识在世界上的广泛传播,他指出,美国最明智的做法是将和平利用原子能的方法和各国共享。“如果我们能够在原子弹真正使用以前将原子能利用的资讯公开,美国的道德力量将会大大加强。”

午餐以后,与会者开始提出对日本投掷原子弹的问题。当时的会议没有正式记录留存。一直到正式会议结束以后, 人们还在讨论原子弹可能造成的效果。有人提出来,投掷一颗原子弹的话,其作用看起来可能和春天以来对日本的大规模轰炸差不多。奥本海默同意这个说法,他补充道:“从视觉效果来说,原子弹爆炸是极具威慑性的。”他说,爆炸将形成一个高亮度的发光体,上升到三千至六千公尺高度。半径一公里以内的生命都有危险威胁。

这次会议上,对于有关投掷原子弹的“所有可能目标和所有可能后果”都做了详尽讨论。战争部长斯汀生将与会者的意见综合为:“……事先不能给日本警告;不能针对平民,但是,必须有尽可能大的杀伤数量以增加精神威慑力量。”

斯汀生说,他赞成哈佛大学校长康纳特(James Conant)的意见:“最理想的目标是一个雇用大量工人的军事工厂,邻近有大量工人住房。”这样,世界上第一颗原子弹轰炸的对象就大致被确定了。

1945年6月16日,“曼哈顿计划”最高层次的科学家们提出一份不长的意见书,名为“对于立即使用核武器的意见”。奥本海默在上面签了名。意见书修改以后送交斯汀生。

意见书分为两点。第一,在使用原子弹以前,华府应当照会英、俄、法、中四国有关原子弹已经存在的事实,并且欢迎四国与美国合作,利用这个武器为契机改善国际关系。第二,科学家们在如何使用原子弹这个问题上并没有取得一致意见。一些直接参与制造原子弹的科学家建议,用一次演习来取代真正的攻击。“建议用纯粹技术性演习取代真正攻击的学者们希望,将使用原子弹的行为定为非法。他们担心,如果美国率先使用了原子弹,在未来的谈判中将受到谴责”。奥本海默知道,他的大多数同事都是主张以演习取代攻击的。但是,他站在另外一边。这一边的主张是,不能放弃“用立即军事攻击来拯救美国人生命的机会”。

1945年春天,太平洋地区血战频仍,日益惨烈。4月6日,美军占领冲绳,日本以最极端手段还以颜色,日本空军组成神风特攻队,以血肉之躯驾驶飞机冲击美国军舰。但是,经过三个月地面战争,日军投降人数高达七千四百名,显示日军内部心理防线开始溃败。

日本政府仍然在抵抗。美军截获的日本密电显示,天皇本人仍然表示“反对投降”。一直到7月事情才有转机。杜鲁门告诉斯大林有“日本天皇要求和平”的消息。问题的焦点在于“无条件投降”的定义。东京希望得到华府的承诺:天皇将不会受到伤害和羞辱。

引起杜鲁门警惕的是,斯大林决定加入对日作战,以迫使日本提早投降。苏联出兵日本本土的时间定在8月15日以前,而美国计划第一波美军在日本登陆的时间最早也在11月1日左右。

1945年初夏,杜鲁门总统得到的建议是,一旦原子弹准备就绪,就用它来提早结束战争,而且要在苏联出兵以前动手。

奥本海默和他所领导的科学家们对此毫无所知,一直到战争结束以后。

1945年的夏天,新墨西哥州异常干旱炎热。奥本海默严厉督促,每个人的工作强度都到了极限。奥本海默在给主持“曼哈顿计划”的戈罗夫斯将军的报告中,要求在正式使用原子弹以前必须进行一次完整的实验。奥本海默说,由于人类在这个领域完全没有具体知识,“不经试验就贸然在敌方国土进行这样一次爆炸是盲目的行为”。

一年以前,奥本海默曾经驾驶一辆四分之三吨的军用货车,在新墨西哥州的南部开了三天三夜,为原子弹的试验找好了一个地方。那片地方位处小城埃拉莫伽多以北七十哩,被西班牙殖民者称为“死人之旅”。军队在那里迁移了一些牧场,开辟出一块十八哩长、二十四哩宽的实验区,建造起一个现场实验室和几百个用于观察原子弹爆炸的地堡。奥本海默把这块地方命名为“三位一体”(Trinity)。

1945年7月中旬的波茨坦会议前,杜鲁门总统示意戈罗夫斯,希望在会议开始的时候手上能握有原子弹这张王牌。在戈罗夫斯一再施压下,奥本海默终于同意把第一次试验的日期定在7月16日,星期一。

7月11日,奥本海默告别妻子凯蒂的时候告诉她,如果试验成功,他会给她发一个电报:“你可以换床单了。”凯蒂把花园里找到的一片象征幸运的四叶苜蓿送给丈夫。

由于一次小型试验失败,有些试验人员开始担忧这次试验结果可能是一个哑弹。许多人责难爆炸物理专家基斯田克斯基(George Kistiakowsky)。基斯田克斯基回忆道:“奥本海默那几天神经有点紧张。我告诉他没问题,还和他打一个赌。我用一个月的薪水赌他十块钱,赌注是爆炸一定成功。”

离爆炸还有两天的那个晚上,奥本海默睡了四个小时。一个睡在旁边地堡中的军官听见奥本海默不停地咳嗽了半夜。

星期天早上,精疲力竭的奥本海默如常起身。他在吃早餐的时候终于得到一个好消息。理论物理部主任贝舍打电话告诉他,前几天失败的那次小型试验原因查明,罪魁祸首是一个失效的感应器。贝舍强调,基斯田克斯基的设计没有任何问题。奥本海默精神为之一振。他马上转而担心天气问题。

气象专家哈巴德(Jack Hubbard)警告说,虽然现在试验地区晴朗,但是,风正在卷来雨云,天气要变。奥本海默立即给即将从加州赶来现场观察爆炸的戈罗夫斯打电话,告诉他,天气的变化可能影响试验进行。

试爆前夜,奥本海默留在总部大厅等候天明。他一支接着一支地抽雪茄,同时一杯接着一杯地喝黑咖啡。最后,他拿起一本波德莱尔(Charles Baudelaire,法国诗人)的诗集静静地阅读,伴随着他的是一阵阵暴雨击打着铁皮屋顶的声音。

一串闪电划破夜空。物理学家佛米(Enrico Fermi)忍不住了。他向奥本海默提议,将这次原子弹试爆改期。理由很清楚,如果按照原计划试爆,狂风会把沾染了放射尘的雨云带到别的地区,“那将是一场灾难”。

但是,气象学家哈巴德坚持,这场暴风雨马上就会过去,试爆只需要推迟一个小时,从早上四点推迟到早上五点,就够了。

戈罗夫斯把奥本海默拉到一边,一条条列出理由,强调试验如期进行的必要。他们两个人都清楚地知道,现场的专家已经精疲力竭。推迟试验的话,几乎可以肯定得在两三天以后再重新开始。

戈罗夫斯担心,如果哪一个科学家冲动起来,再来找奥本海默要求试验展期,奥本海默会被打动。他干脆带上奥本海默离开总部,一起来到试验区南端掩护所,商议试验时间的问题。这里距试爆的“三位一体”区仅仅六哩而已。

时间是凌晨两点三十分,时速三十哩的大风刮扫着整个试验场,雷雨声势不减。只有哈巴德和他的几个助手坚持认为,风雨肯定会在黎明时分停歇。

奥本海默和戈罗夫斯每隔几分钟就走出地堡,看看天色。两人不久终于做出决定,试验在五点三十分进行,其余一切听天由命。

一个小时以后,大雨渐停,风势转弱,天色晴朗起来。

五点十分,试验场地所有的喇叭传出中央控制室的声音:“距离试验还有二十分钟,倒数计时开始。”

年轻的物理学家费曼(Richard Feynman)受命在距离爆炸中心二十哩外观察。他怕看不清楚爆炸的情景,所以不打算使用实验室发给他的深色观察保护玻璃,爬上一辆卡车,隔着玻璃向埃拉莫伽多方向等候着。但是爆炸的第一缕光射来就把他吓得马上蹲下来。

他看到,第一波炫目的白光迅即变成黄色,然后是橘红色。“中心异常明亮的一个橘红色大球冉冉升起,慢慢涨大,边缘变成细细的黑色。这时候你才明白,这是一个无比巨大的火球。”

足足过了一分半钟,巨大的爆炸声拖着长长的雷鸣才传来。和费曼在一起的物理学家色贝(Bob Serber)说:“远在二十哩外,我的脸上仍然有烧灼感。”

在现场的哈佛大学校长康纳特说,一开始就是占据所有天空的白色闪光,“我以为一定是哪里出了问题,整个世界都烧起来了”。

奥本海默的弟弟、物理学家法兰克·奥本海默也是洛斯·阿拉莫斯实验室的一员,他回忆道:“爆炸的第一道光亮得足以穿透紧闭的眼帘,紧接着的就是升起来的巨大、明亮的紫色蘑菇云。”他说,温度高得远远超过了大家的估计,爆炸的巨响在遥远的群山之间滚来滚去,“最可怕的是天上悬着的那些耀眼的紫色云层和黑色的放射尘,好像随时会把地面上的人们吞噬”。

奥本海默面孔朝下躺在控制中心的地堡里。倒数计时还剩两分钟的时候,他喃喃地说:“上帝啊,这些事情搁在我心里难受……”

戈罗夫斯的副手法瑞尔将军就在奥本海默的身边,他回忆道:“倒数计时临近尾声的时候,奥本海默越来越紧张。最后几秒钟数完,接着是‘开始’……他两眼茫然直视,直到爆炸闪光和巨大声浪传来,他才一下子松弛下来。”

稍后,物理学家瑞比(Isidor Rabi)目睹奥本海默走下汽车,眼见这个大功告成的人心情骤然轻松后,不知不觉用异常的步态行走,他难受得浑身皮肤都刺痛起来了:“他就像High Noon(贾利·古柏主演的电影《日正当中》)里面那个好汉警长那样高视阔步。他竟然变成那样”

早上,戈罗夫斯将军指定的《纽约时报》记者劳伦斯(William L. Laurence)前来采访。奥本海默用贫乏的言语描述了自己对于爆炸成功的感受,“恐惧”、“不无沮丧”,停顿一会儿,他说:“许多孩子还没有成长就面对了死亡。”

无论奥本海默怎么想,现场的科学家们都是无比兴奋。劳伦斯描述道:“巨大的闪光以后,足足过了一百秒钟,传来了爆炸的巨响,那是一个新世界诞生的初始啼声!寂静、凝固的景象骤然有了生机。原来躲藏在地下好像沙漠植物似的那一小群人,忽然跳起舞来。”欢呼雀跃了一会儿,大家这才开始相互握手道贺。“大家相互拍肩膀,笑得像孩子一样”。

基斯田克斯基找到奥本海默,向他讨打赌的十块钱。爆炸成功了,他赢了。奥本海默掏出空空的皮夹,要他等一等。大家回到洛斯·阿拉莫斯以后,奥本海默特别举行了一个仪式,把一张签了名的十元纸币郑重颁赠给基斯田克斯基。

走出控制中心的时候,奥本海默和同事本布里基(Ken Bainbridge)握手。本布里基望着他的眼睛轻声说:“现在我们都是万人咒骂的狗娘养的了。”

回到基地,奥本海默分别和弟弟法兰克,以及法瑞尔将军干了一杯葡萄酒,然后通知机要秘书,给他的妻子凯蒂发一份电报:“告诉她,换床单吧。”

1945年8月6日,一架美军的B-29轰炸机在日本广岛扔下第一颗原子弹,杀死了七万人。三天后,另一颗原子弹落在日本长崎。8月15日,日本宣布无条件投降。

1947年,奥本海默担任普林斯顿大学Advanced Study研究院院长。身为国家原子能委员会总顾问委员会主席,他警告美国不要陷入针对苏联的武器发展竞争,并且反对进行威力更强大的氢弹试验。他的敌人乘机发难,控告他对美国不忠。1954年原子能委员会举行的一次听证会以后,奥本海默被宣布为政治不安全人物,成为当时反赤色恐怖运动最著名的牺牲者。与此同时,他的“原子弹之父”的声明也更加响亮。

奥本海默在1967年去世,时年六十二岁。 
posted @ 2008-02-18 11:43 Borcala 阅读(429) 评论(1) 编辑
怎样玩魔方集锦(转录)
摘要: 怎样玩魔方(转录)  魔方曾被誉为世界三大智力玩具之一,不过现在我不敢这么说了。什么?另外两个是什么?你可记住了:那是我们中国的九连环和捉放曹啊!  魔方可以拆开。废话!不过……你拆开过吗?如果没有,赶快把魔方一块一块地卸下来,嘿嘿嘿,是不是有一种打DOOM怪物的感觉?卸下来了吗?可以看到,除了骨架上的六个不同颜色的中心积木外,还有8个角上的积木和12个棱上的积木。  中心...阅读全文
posted @ 2008-02-18 11:01 Borcala 阅读(9707) 评论(6) 编辑
2008年2月1日
WEB编程开发常用的代码 ( 选择自 AppleBBS 的 Blog)
摘要: WEB编程开发常用的代码 ( 选择自 AppleBBS 的 Blog)   center border=0> <linkrel="Bookmark"href="favicon.ico"> 关闭输入法 <inputstyle="ime-mode:disabled"> 永远都会带着框架 <scriptlanguage="javascript"><!-- ...阅读全文
posted @ 2008-02-01 14:43 Borcala 阅读(150) 评论(0) 编辑
2008年1月31日
一套较完整的技术框架
摘要: 一套较完整的技术框架 1 引言1.1 前言本文将基于目前现有的软件开发架构(以下简称‘架构’)(Packer for Delphi),同时如何合理地引进新技术等问题,进行系统地分析和研究,以指导新架构的研发。1.2 研发依据1.2.1 公司发展1.2.2 开发方式1.2.3 技术升级1.2.4 产品线行业领域软件需要个性化的服务,如果对应以作坊式的开发方式,将会陷于项目越多...阅读全文
posted @ 2008-01-31 00:41 Borcala 阅读(755) 评论(0) 编辑
2008年1月30日
软件开发的六大阶段 (指针经典原创)
摘要: 软件开发的六大阶段 第一阶段:调研阶段本阶段我们将组成企业项目调研组到企业进行现场调研,企业也部分需组织相应人员进行配合。整个调研工作将历时三星期到一个月左右时间。调研内容按以下方面进行。1)公司整体情况调研目的:对企业的业务状况,组织结构,企业文化,发展战略进行仔细了解,从整体上对企业进行把握。2)OA系统调研目的:了解企业公文流转的方式,文档的管理,对使用OA系统的要求。在进行系统调研时,安...阅读全文
posted @ 2008-01-30 21:51 Borcala 阅读(205) 评论(0) 编辑
如何分层架构(杂记)
摘要: 怎样分层:http://blog.csdn.net/llx529/archive/2005/08/15/455328.aspx初学者,关于.net架构设计的问题?如何建立三层架构?from CSDN最上层,数据访问data access layer,调用存储过程,运行sql语句. 中间曾,业务逻辑business logic layer,这一层封装业务逻辑,这一层调用数据访问层的方法. 用...阅读全文
posted @ 2008-01-30 21:37 Borcala 阅读(639) 评论(0) 编辑
仅列出标题  下一页
Copyright ©2012 Borcala