设有关系R1和R2,经过关系运算得到结果S,则S是__(D )
A一个数组 B一个对象 C一个数据库 D一个关系
解释:这个不用多说,关系运算得到一个关系。
2、 公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是__C___。
A多对多 B一对一 C多对一 D一对多
解释:这个很明显,每个员工只能属于一个部门,一个部门中有多个员工。从职员到部门是说的这两个实体间的关系,而不是一个员工(具体到一个人)和一个部门(具体到一个部门)之间的关系。
3、SQL语言中,用GRANT/REVOKE语句实现数据库的_D ____
A并发控制 B完整性控制 C一致性控制 D安全性控制
解释:授权语句,控制用户权限,保证安全。
4、有关动态增量备份的描述正确的是___D___。
A动态增量备份过程不允许外部事务程序访问数据库
B动态增量备份会备份出全部数据
C动态增量备份装载后数据库即处于一致性状态
D动态增量备份宜在事务不繁忙时进行
解释:动态增量备份时差异备份,B错误。动态允许外部事务访问数据库,A错误。备份前后数据会有变化,所以装载后的数据库处于不一致性状态。C错误
5、事务回滚指令ROLLBACK执行的结果是_____。( B )
A跳转到事务程序开始处继续执行
B撤销该事务已经做出的任何对数据库的修改
C事务执行出错
D跳转到事务程序结束处继续执行
解释:事务的ACID,rollback回滚该事务已经做出的任何对数据库的修改
8、日志文件用于事务故障、_____的恢复。( B )
A系统故障、CPU故障 B系统故障、介质故障
C介质故障、CPU故障 D介质故障、入侵故障
解释:硬性知识
9、SQL语言中,属于“模式DDL”语言的是____A__语句。
Acreate table Bupdate Cselect Dinsert
解释:数据定义语言
10、数据库并发 *** 作通常会带来丢失修改、__B____和读脏数据等问题。( )
A不可恢复 B不可重复读 C不可备份 D不可持续
解释:硬性知识
11、关系R(A,B,C,D),码为AB,函数依赖{AB→C,AB→D,C→D},最高范式为)____B___( )
A1NF B2NF C3NF DBCNF
解释:ab->c,c->d=>ab->d,有传递依赖,而且每一个非主属性完全依赖于ab
12、事务T要写数据A,则应该对数据A的上层节点加__A__( )
AX锁 BS锁 CIS锁 DIX锁
解释:加排他锁
ClassforName("oraclejdbcdriverOracleDriver");
Connection conn=DriverManagergetConnection("数据库url","帐号","密码");
state=conncreateStatement();
stateexecuteUpdate("create 建表语句");
stateexecuteUpdate("insert 插入数据")------>插入的值由页面获得,注意字符串拼接。
然后就是关闭连接,stateclose();connclose();
核心代码就是这些,具体应用你可以多写几个方法(增删改查),都是类似的,注意异常的处理,关闭连接最好在finally中进行。
dbf 是数据库foxpro中的数据记录文件
mdb是数据库access中的数据记录文件
保护工作簿只能对工作表的窗口或结构进行保护!而保护工作表中保护的项目就很多了,而且各版本的功能不同,随着版本的升级有所加强,特别是从2000升级到XP版后,功能增加了不少,能对单元格的数据,格式,甚至是对工作表的 *** 作(如增加/删除行,是否能选定保护的单元格)进行保护。
windows支持的计算机通信协议
一、通信协议
组建网络时,必须选择一种网络通信协议,使得用户之间能够相互进行“交流”。协议(Protocol)是网络设备用来通信的一套规则,这套规则可以理解为一种彼此都能听得懂的公用语言。关于网络中的协议可以概括为两类:“内部协议”和“外部协议”下面分别予以介绍。
1内部协议
1978年,国际标准化组织(ISO)为网络通信制定了一个标准模式,称为OSI/RM(Open System Interconnect/Reference Model,开放系统互联参考模型)体系结构。该结构共分七层,从低到高分别是物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。其中,任何一个网络设备的上下层之间都有其特定的协议形式,同时两个设备(如工作站与服务器)的同层之间也有其使用的协议约定。在这里,我们将这种上下层之间和同层之间的协议全部定义为“内部协议”。内部协议在组网中一般很少涉及到,它主要提供给网络开发人员使用。如果你只是为了组建一个网络,可不去理会内部协议。
2外部协议
外部协议即我们组网时所必须选择的协议。由于它直接负责计算机之间的相互通信,所以通常称为网络通信协议。自从网络问世以来,有许多公司投入到了通信协议的开发中,如IBM、Banyan、Novell、Microsoft等。每家公司开发的协议,最初一般是为了满足自己的网络通信,但随着网络应用的普及,不同网络之间进行互联的要求越来越迫切,因此通信协议就成为解决网络之间互联的关键技术。就像使用不同母语的人与人之间需要一种通用语言才能交谈一样,网络之间的通信也需要一种通用语言,这种通用语言就是通信协议。目前,局域网中常用的通信协议(外部协议)主要有NetBEUI、IPX/SPX及其兼容协议和TCP/IP三类。
3选择网络通信协议的原则
我们在选择通信协议时一般应遵循以下的原则:
第一、所选协议要与网络结构和功能相一致。如你的网络存在多个网段或要通过路由器相连时,就不能使用不具备路由和跨网段 *** 作功能的NetBEUI协议,而必须选择IPX/SPX或TCP/IP等协议。另外,如果你的网络规模较小,同时只是为了简单的文件和设备的共享,这时你最关心的就是网络速度,所以在选择协议时应选择占用内存小和带宽利用率高的协议,如NetBEUI。当你的网络规模较大,且网络结构复杂时,应选择可管理性和可扩充性较好的协议,如TCP/IP。
第二、除特殊情况外,一个网络尽量只选择一种通信协议。现实中许多人的做法是一次选择多个协议,或选择系统所提供的所有协议,其实这样做是很不可取的。因为每个协议都要占用计算机的内存,选择的协议越多,占用计算机的内存资源就越多。一方面影响了计算机的运行速度,另一方面不利于网络的管理。事实上一个网络中一般一种通信协议就可以满足需要。
第三、注意协议的版本。每个协议都有它的发展和完善过程,因而出现了不同的版本,每个版本的协议都有它最为合适的网络环境。从整体来看,高版本协议的功能和性能要比低版本好。所以在选择时,在满足网络功能要求的前提下,应尽量选择高版本的通信协议。
第四、协议的一致性。如果要让两台实现互联的计算机间进行对话,它们两者使用的通信协议必须相同。否则中间还需要一个“翻译”进行不同协议的转换,这样不仅影响通信速度,同时也不利于网络的安全和稳定运行。
二、局域网中常用的三种通信协议
1NetBEUI协议
■NetBEUI通信协议的特点。NetBEUI(NetBIOS Extended User Interface,用户扩展接口)由IBM于1985年开发完成,它是一种体积小、效率高、速度快的通信协议。NetBEUI也是微软最钟爱的一种通信协议,所以它被称为微软所有产品中通信协议的“母语”。微软在其早期产品,如DOS、LAN Manager、Windows 3x和Windows for Workgroup中主要选择NetBEUI作为自己的通信协议。在微软如今的主流产品,如Windows 95/98和Windows NT中,NetBEUI已成为其固有的缺省协议。有人将WinNT定位为低端网络服务器 *** 作系统,这与微软的产品过于依赖NetBEUI有直接的关系。NetBEUI是专门为几台到百余台PC所组成的单网段部门级小型局域网而设计的,它不具有跨网段工作的功能,即NetBEUI不具备路由功能。如果你在一个服务器上安装了多块网卡,或要采用路由器等设备进行两个局域网的互联时,将不能使用NetBEUI通信协议。否则,与不同网卡(每一块网卡连接一个网段)相连的设备之间,以及不同的局域网之间将无法进行通信。
虽然NetBEUI存在许多不尽人意的地方,但它也具有其他协议所不具备的优点。在三种通信协议中,NetBEUI占用内存最少,在网络中基本不需要任何配置。尤其在微软产品几乎独占PC *** 作系统的今天,它很适合于广大的网络初学者使用。
■NetBEUI与NetBIOS之间的关系。细心的读者可能已经发现,NetBEUI中包含一个网络接口标准NetBIOS。NetBIOS(Network Basic Input/Output System,网络基本输入/输出系统)是IBM在1983年开发的一套用于实现PC间相互通信的标准,其目的是开发一种仅仅在小型局域网上使用的通信规范。该网络由PC组成,最大用户数不超过30个,其特点是突出一个“小”字。后来,IBM发现NetBIOS存在的许多缺陷,所以于1985年对其进行了改进,推出了NetBEUI通信协议。随即,微软将NetBEUI作为其客户机/服务器网络系统的基本通信协议,并进一步进行了扩充和完善。最有代表性的是在NetBEUI中增加了叫做SMB(Server Message Blocks,服务器消息块)的组成部分,以降低网络的通信堵塞。为此,有时将NetBEUI协议也称为“SMB协议”。
人们常将NetBIOS和NetBEUI混淆起来,其实NetBIOS只能算是一个网络应用程序的接口规范,是NetBEUI的基础,它不具有严格的通信协议功能。而NetBEUI是建立在NetBIOS基础之上的一个网络传输协议。
2IPX/SPX及其兼容协议
■IPX/SPX通信协议的特点。IPX/SPX(Internetwork Packet eXchange/Sequences Packet eXchange,网际包交换/顺序包交换)是Novell公司的通信协议集。与NetBEUI的明显区别是,IPX/SPX显得比较庞大,在复杂环境下具有很强的适应性。因为,IPX/SPX在设计一开始就考虑了多网段的问题,具有强大的路由功能,适合于大型网络使用。当用户端接入NetWare服务器时,IPX/SPX及其兼容协议是最好的选择。但在非Novell网络环境中,一般不使用IPX/SPX。尤其在Windows NT网络和由Windows 95/98组成的对等网中,无法直接使用IPX/SPX通信协议。
■IPX/SPX协议的工作方式。IPX/SPX及其兼容协议不需要任何配置,它可通过“网络地址”来识别自己的身份。Novell网络中的网络地址由两部分组成:标明物理网段的“网络ID”和标明特殊设备的“节点ID”。其中网络ID集中在NetWare服务器或路由器中,节点ID即为每个网卡的ID号(网卡卡号)。所有的网络ID和节点ID都是一个独一无二的“内部IPX地址”。正是由于网络地址的唯一性,才使IPX/SPX具有较强的路由功能。
在IPX/SPX协议中,IPX是NetWare最底层的协议,它只负责数据在网络中的移动,并不保证数据是否传输成功,也不提供纠错服务。IPX在负责数据传送时,如果接收节点在同一网段内,就直接按该节点的ID将数据传给它;如果接收节点是远程的(不在同一网段内,或位于不同的局域网中),数据将交给NetWare服务器或路由器中的网络ID,继续数据的下一步传输。SPX在整个协议中负责对所传输的数据进行无差错处理,所以我们将IPX/SPX也叫做“Novell的协议集”。
■NWLink通信协议。Windows NT中提供了两个IPX/SPX的兼容协议:“NWLink SPX/SPX兼容协议”和“NWLink NetBIOS”,两者统称为“NWLink通信协议”。NWLink协议是Novell公司IPX/SPX协议在微软网络中的实现,它在继承IPX/SPX协议优点的同时,更适应了微软的 *** 作系统和网络环境。Windows NT网络和Windows 95/98的用户,可以利用NWLink协议获得NetWare服务器的服务。如果你的网络从Novell环境转向微软平台,或两种平台共存时,NWLink通信协议是最好的选择。不过在使用NWLink协议时,其中“NWLink IPX/SPX兼容协议”类似于Windows 95/98中的“IPX/SPX兼容协议”,它只能作为客户端的协议实现对NetWare服务器的访问,离开了NetWare服务器,此兼容协议将失去作用;而“NWLink NetBIOS”协议不但可在NetWare服务器与Windows NT之间传递信息,而且能够用于Windows NT、Windows 95/98相互之间任意通信。
3TCP/IP协议
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是目前最常用到的一种通信协议,它是计算机世界里的一个通用协议。在局域网中,TCP/IP最早出现在Unix系统中,现在几乎所有的厂商和 *** 作系统都开始支持它。同时,TCP/IP也是Internet的基础协议。
■TCP/IP通信协议的特点。TCP/IP具有很高的灵活性,支持任意规模的网络,几乎可连接所有的服务器和工作站。但其灵活性也为它的使用带来了许多不便,在使用NetBEUI和IPX/SPX及其兼容协议时都不需要进行配置,而TCP/IP协议在使用时首先要进行复杂的设置。每个节点至少需要一个“IP地址”、一个“子网掩码”、一个“默认网关”和一个“主机名”。如此复杂的设置,对于一些初识网络的用户来说的确带来了不便。不过,在Windows NT中提供了一个称为动态主机配置协议(DHCP)的工具,它可自动为客户机分配连入网络时所需的信息,减轻了联网工作上的负担,并避免了出错。当然,DHCP所拥有的功能必须要有DHCP服务器才能实现。
同IPX/SPX及其兼容协议一样,TCP/IP也是一种可路由的协议。但是,两者存在着一些差别。TCP/IP的地址是分级的,这使得它很容易确定并找到网上的用户,同时也提高了网络带宽的利用率。当需要时,运行TCP/IP协议的服务器(如Windows NT服务器)还可以被配置成TCP/IP路由器。与TCP/IP不同的是,IPX/SPX协议中的IPX使用的是一种广播协议,它经常出现广播包堵塞,所以无法获得最佳的网络带宽。
■Windows 95/98中的TCP/IP协议。Windows 95/98的用户不但可以使用TCP/IP组建对等网,而且可以方便地接入其它的服务器。值得注意的是,如果Windows 95/98工作站只安装了TCP/IP协议,它是不能直接加入Windows NT域的。虽然该工作站可通过运行在Windows NT服务器上的代理服务器(如Proxy Server)来访问Internet,但却不能通过它登录Windows NT服务器的域。如果要让只安装TCP/IP协议的Windows 95/98用户加入到Windows NT域,还必须在Windows 95/98上安装NetBEUI协议。
■TCP/IP协议在局域网中的配置。在提到TCP/IP协议时,有许多用户便被其复杂的描述和配置所困扰,而不敢放心地去使用。其实就局域网用户来说,只要你掌握了一些有关TCP/IP方面的知识,使用起来也非常方便。
●IP地址基础知识。前面在谈到IPX/SPX协议时就已知道,IPX的地址由“网络ID”(NetWork ID)和“节点ID”(Node ID)两部分组成,IPX/SPX协议是靠IPX地址来进行网上用户的识别的。同样,TCP/IP协议也是靠自己的IP地址来识别在网上的位置和身份的,IP地址同样由“网络ID”和“节点ID”(或称HOST ID,主机地址)两部分组成。一个完整的IP地址用32位(bit)二进制数组成,每8位(1个字节)为一个段(Segment),共4段(Segment1~Segment4),段与段之间用“”号隔开。为了便于应用,IP地址在实际使用时并不直接用二进制,而是用大家熟悉的十进制数表示,如19216801等。IP地址的完整组成:“网络ID”和“节点ID”都包含在32位二进制数中。
双绞线的英文名字叫Twist-Pair。是综合布线工程中最常用的一种传输介质。
双绞线采用了一对互相绝缘的金属导线互相绞合的方式来抵御一部分外界电磁波干扰。把两根绝缘的铜导线按一定密度互相绞在一起,可以降低信号干扰的程度,每一根导线在传输中辐射的电波会被另一根线上发出的电波抵消。“双绞线”的名字也是由此而来。双绞线一般由两根22-26号绝缘铜导线相互缠绕而成,实际使用时,双绞线是由多对双绞线一起包在一个绝缘电缆套管里的。典型的双绞线有四对的,也有更多对双绞线放在一个电缆套管里的。这些我们称之为双绞线电缆。在双绞线电缆(也称双扭线电缆)内,不同线对具有不同的扭绞长度,一般地说,扭绞长度在381cm至14cm内,按逆时针方向扭绞。相临线对的扭绞长度在127cm以上,一般扭线的越密其抗干扰能力就越强,与其他传输介质相比,双绞线在传输距离,信道宽度和数据传输速度等方面均受到一定限制,但价格较为低廉。
双绞线常见的有3类线,5类线和超5类线,以及最新的6类线,前者线径细而后者线径粗,型号如下:
1)一类线:主要用于传输语音(一类标准主要用于八十年代初之前的电话线缆),不同于数据传输。
2)二类线:传输频率为1MHZ,用于语音传输和最高传输速率4Mbps的数据传输,常见于使用4MBPS规范令牌传递协议的旧的令牌网。
3)三类线:指目前在ANSI和EIA/TIA568标准中指定的电缆,该电缆的传输频率16MHz,用于语音传输及最高传输速率为10Mbps的数据传输主要用于10BASE--T。
4)四类线:该类电缆的传输频率为20MHz,用于语音传输和最高传输速率16Mbps的数据传输主要用于基于令牌的局域网和 10BASE-T/100BASE-T。
5)五类线:该类电缆增加了绕线密度,外套一种高质量的绝缘材料,传输率为100MHz,用于语音传输和最高传输速率为10Mbps的数据传输,主要用于100BASE-T和10BASE-T网络。这是最常用的以太网电缆。
6)超五类线:超5类具有衰减小,串扰少,并且具有更高的衰减与串扰的比值(ACR)和信噪比(Structural Return Loss)、更小的时延误差,性能得到很大提高。超5类线主要用于千兆位以太网(1000Mbps)。
7)六类线:该类电缆的传输频率为1MHz~250MHz,六类布线系统在200MHz时综合衰减串扰比(PS-ACR)应该有较大的余量,它提供2倍于超五类的带宽。六类布线的传输性能远远高于超五类标准,最适用于传输速率高于1Gbps的应用。六类与超五类的一个重要的不同点在于:改善了在串扰以及回波损耗方面的性能,对于新一代全双工的高速网络应用而言,优良的回波损耗性能是极重要的。六类标准中取消了基本链路模型,布线标准采用星形的拓扑结构,要求的布线距离为:永久链路的长度不能超过90m,信道长度不能超过100m。
目前,双绞线可分为非屏蔽双绞线(UTP=UNSHILDED TWISTED PAIR)和屏蔽双绞线(STP=SHIELDED TWISTED PAIR)。屏蔽双绞线电缆的外层由铝铂包裹,以减小辐射,但并不能完全消除辐射,屏蔽双绞线价格相对较高,安装时要比非屏蔽双绞线电缆困难。非屏蔽双绞线电缆具有以下优点:
(1)无屏蔽外套,直径小,节省所占用的空间;
(2)重量轻,易弯曲,易安装;
(3)将串扰减至最小或加以消除;
(4)具有阻燃性;
(5)具有独立性和灵活性,适用于结构化综合布线。
在这两大类中又分100欧姆电缆,双体电缆,大对数电缆,150欧姆屏蔽电缆等。
当 们把用powerbuilder(以下简称pb)开发的数据库客户端应用程序交给用户后,还需要在用户的服务器端的数据库系统上进行一系列配置工作,如建立业务数据库和建表、视图、主键、索引等数据对象。只有正确配置了数据库服务器上的数据结构,应用程序才能正常运行。通常由经验丰富的数据库管理员,使用数据库系统提供的工具,手工或通过其他辅助工具,来完成数据库端的配置工作。本文以微软的sql server 2000为例,介绍用pb开发一个生成业务数据库及各种业务数据对象的程序,用户只要运行这个程序,就可以建立数据库端的数据结构。 程序功能及结构 程序的主要功能是建立客户应用程序运行时需要的业务数据库和在新建立的业务数据库上建立数据对象。 程序的输入信息通过4个单行编辑文本框获得: ●sle_database:新建立的数据库名称; ●sle_datafile:新建数据库所用的数据文件; ●sle_logfile:新建数据库所用的日志文件; ●sle_script:建立数据库中的数据对象所用的脚本文件。 完成程序功能的两个按钮分别为:cb_create 用于建立数据库;cb_table用于在新建的数据库中建立表、主键等数据对象。 在两个输出窗口中输出结果:dw_database 用于显示新建的数据库名称及数据文件;dw_objects用于显示通过cb_table按钮建立的数据对象。 具体实现 考虑到对于一个特定的应用,在系统分析阶段就已经确定数据库所需要的数据空间、日志空间的大小等一些系统物理信息,不会等到程序运行时由用户确定,所以这些信息不需要用户输入。数据库的名称一般来说也是固定的,用户输入的数据库名称(sle_database),可用来检查数据库系统中是否已经有同名的数据库。数据文件和逻辑文件的物理位置和名称,由用户根据服务器上的磁盘空间空闲情况输入(sle_datafile、sle_logfile),程序中给出了初始值,指定的文件位置是sql server通常的数据文件存放位置。 1.建立数据对象的脚本文件(sle_script) 该文件是普通的文本文件类型,其内容由建立表、主键等数据对象的数据定义语言(ddl)组成,其语法符合数据库系统的规则。例如,脚本testsql内容为建立两个带有主键的表: create table xz_tj_all ( gxjg char(4) not null, nian smallint not null, yue tinyint not null, bz1 tinyint not null, bz2 tinyint not null, a1 integer , a2 integer , a3 integer , primary key (gxjg, nian, yue, bz1, bz2) ) create table xz_tj_4_1 ( gxjg char(4) not null, nian smallint not null, yue tinyint not null, bz1 tinyint not null, bz2 tinyint not null, a1 integer , primary key (gxjg, nian, yue, bz1, bz2) ) 2.窗口的open事件 应用程序只用到一个窗口(w_create_database),在其open事件中,对两个全局事务对象进行创建,并利用其中的一个事务对象(tr_sql)与系统数据库(master)进行连接。此时还没有进行业务数据库的创建工作,业务数据库不存在,所以不能在这里进行与新建业务数据库的连接。w_create_database 的open事件脚本如下: //创建与master系统数据库相连接的事务对象 tr_sql = create transaction tr_sqldbms =“mss microsoft sql server 6x” tr_sqldatabase = “master” //数据库系统管理员 tr_sqllogpass = “sa” //服务器名 tr_sqlservername = “station4” //系统管理员口令 tr_sqllogid = “sa” tr_sqlautocommit = false tr_sqldbparm = “” //连接到master系统数据库 connect using tr_sql; if tr_sqlsqlcode <> 0 then messagebox (“数据库连接错误”,“不能连接到sql server数据库master。请确认sql server数据库是否启动。~n~r” + “错误信息:”+ tr_sqlsqlerrtext) return end if //从系统表sysdatabases中检索数据库信息 dw_databasesettransobject(tr_sql); //创建与新建业务数据库相连接的事务对象 tr_newbase = create transaction tr_newbasedbms =“mss microsoft sql server 6x” tr_newbaselogpass =“sa” tr_newbaseservername =“station4” tr_newbaselogid =“sa” tr_newbaseautocommit = false tr_newbasedbparm =“” 3.cb_create按钮的单击事件 根据业务需要,这里创建的数据文件和日志文件的初始大小为100mb,最大值为200mb,增量为20mb。按钮cb_create根据输入参数构造动态sql语句,创建数据库。cb_create的clicked事件脚本如下: //数据库名 string ls_database //数据文件路径及文件名 string ls_datafile //日志文件路径及文件名 string ls_logfile //创建数据库的sql语句 string ls_mysql //逻辑数据文件名 string ls_logicalfilename //逻辑日志文件名 string ls_logicallogname setpointer(hourglass!) //取得用户输入的数据库名称 ls_database = trim(sle_databasetext) //取得数据文件位置和名称 ls_datafile = trim(sle_datafiletext) //取得日志文件位置和名称 ls_logfile = trim(sle_logfiletext) ls_logicalfilename = ls_database +“arch1” ls_logicallogname = ls_database +“archlog1” tr_sqlautocommit = true //建立数据库的语句 ls_mysql=“create database ”+ls_database+“on”& +“( name =”+ls_logicalfilename+“,”& +“filename = ‘”+ls_datafile+“',”& +“size = 100mb,”& +“maxsize = 200,”& +“filegrowth = 20)”& +“log on ”& +“( name = ”+ls_logicallogname+“,”& +“filename = ‘”+ls_logfile+“',”& +“size = 100mb,”& +“maxsize = 200,”& +“filegrowth = 20)” execute immediate :ls_mysql using tr_sql; tr_sqlautocommit = false //检索出刚刚建立的数据库 dw_databaseretrieve(ls_database) cb_tableenabled = true setpointer(arrow!) 4.cb_table按钮的单击事件 按钮cb_table从指定的脚本文件(sle_scripttext)中读取内容,构造动态的sql语句,创建数据对象。为简化程序,对于脚本文件大于32765字节的情况,本文没做处理,读者可用多次读文件等技术自行处理。 cb_table的clicked事件脚本如下: //创建数据对象前的时间 datetime ldt_create //数据库名 string ls_database //创建数据对象的sql语句 string ls_sql //存储脚本文件名 string ls_filename //打开文件的文件号 int li_fileno //文件长度,读取的文件字节数 long ll_filelength, ll_number //取得新建的数据库名称 ls_database = trim(sle_databasetext) if messagebox(“请确认”,“将要在”+ls_database+“数据库中生成表结构?”, question!,yesno!,2) = 2 then return end if setpointer(hourglass!) //为连接业务数据库的事务对象设置数据库值 tr_newbasedatabase = ls_database connect using tr_newbase; if tr_newbasesqlcode <> 0 then messagebox (“数据库连接错误”,“不能连接到sql server数据库:”+ls_database +“。~n~r”+“错误信息:”+ tr_newbasesqlerrtext) return end if //取得建立数据对象的时间,并从系统表sysobjects中提取建立的数据对象 select distinct getdate() into :ldt_create from sysobjects using tr_newbase; //此数据窗口将显示新建事务对象 dw_objectssettransobject(tr_newbase) //从输入中取得脚本文件名 ls_filename = trim(sle_scripttext) ll_filelength = filelength(ls_filename) //对大于32765字节的文件不做处理 if ll_filelength > 32765 then messagebox(“”,“脚本文件太大”) disconnect using tr_newbase; return elseif ll_filelength > 0 then //读取文件内容,执行动态sql语句 li_fileno = fileopen(ls_filename, streammode!) ll_number = fileread(li_fileno, ls_sql) if ll_number > 0 and ll_number <= 32765 then tr_newbaseautocommit = true execute immediate :ls_sql usingtr_newbase; tr_newbaseautocommit = false end if fileclose(li_fileno) else //不能正确读取文件信息 sle_scriptsetfocus() sle_scriptselecttext(1,len(sle_scripttext)) messagebox(“打开脚本文件出错”,“请输入正确的表结构脚本文件名称”) disconnect using tr_newbase; return end if //检索刚刚建立的数据对象 dw_objectsretrieve(ldt_create) disconnect using tr_newbase; setpointer(arrow!)
以上就是关于数据库系统概论 选择全部的内容,包括:数据库系统概论 选择、怎样用java代码动态生成数据库表、一些计算机问题!!希望帮忙解答一下,给出思路,谢谢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)