急(怎样判断数据库表的主键是否重复)

lanwenfeng11 2004-12-15 08:56:42
请各位大哥帮一下,写一个函数判断数据库表的主键是否重复,并找出主键的字段名称提示给用户(在dataset的BeforePost事件实现)前台用DELPHI后台用SQL SERVER
...全文
767 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
smiler007 2004-12-15
  • 打赏
  • 举报
回复
try
//SQL 的插入语句
except
//插入不成功,给出提示
end;
lanwenfeng11 2004-12-15
  • 打赏
  • 举报
回复
我知交给数据库判断更好些,也免太浪费资源和间时了,但这是一个不懂技术的人(主管)提出的需求啊,没有办法啊只能做了,现在我也想到什么方法做了,给用户明确、友好的提示(那几个字段重复)。
function isprimary(tablestr: string; dataset: trzdataset): boolean;
两个参数就可以了
用这个系统存储过程exec sp_pkeys @table_name
我还没有写好,正在写
liuzq 2004-12-15
  • 打赏
  • 举报
回复
billydong(billydong)说得对
ln521 2004-12-15
  • 打赏
  • 举报
回复
我喜欢用
select * from where 。。。
billydong 2004-12-15
  • 打赏
  • 举报
回复
交给数据库判断更好些。
用try except 捕获异常
SampsonDyh 2004-12-15
  • 打赏
  • 举报
回复
Kevin_Lmx(繁华阅尽)的方法虽然可行,但每插入一条记录就要循环提取一次数据,这在数据日益增多的情况下,也未免太浪费资源和间时了.最好什么都不管它,插入出错时才处理.(即try...except...end;)
注意要对错误类型有一定的筛选.
zeroxing 2004-12-15
  • 打赏
  • 举报
回复
明白你的意思。其实有两个问题:
1、判断主键是否重复;
2、给用户明确、友好的提示。

第一个,肯定要数据库系统自己来判断。设想由你自己来判断,则首先你要确定哪几个字段是主键,然后,你要人为判断是否存在一条记录,这条记录的几个主键字段和你要提交的记录是有冲突的。你可以用一个where去进行select count(*),如果为1则冲突,如果为0则不冲突。但是这样,则太过麻烦,而且你并不能保证你作完where判断之后到你提交数据之前的小段时间内,是否有别的人提交了同样的数据。所以,我建议还是在try except里面捕获数据库异常,来作为判断主键冲突的手段。假设你是用ADO控件访问SQL Server,则捕获EOleException,判断ErrorCode 是否为 -2147217873。

第二个,关键问题在于找出关键字字段的名称。如果你的表结构已经固定下来不变了,你当然可以硬编码进去,告诉用户是这几个字段出错了。如果你想做的动态些,我现在也还没有找到很好的办法。回去研究一下,还有也许别的同志能有好的办法。
fyxi 2004-12-15
  • 打赏
  • 举报
回复
没什么方便的办法,在INSERT之前再QUERY一次
with Aodquery1 do
bein
Close;
SQL.Clear;
SQL.Add(Select * from where 主键 := '''+Edit1.text+''');
Open;

if Adoquery1.RecordCount <> 0 then
begin
SHowMessage('产品编号已存在,请重新录入!');
Exit;
end;
end;
Kevin_Lmx 2004-12-15
  • 打赏
  • 举报
回复
用Locate。例如:
with CustTable do
begin
if Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '408-431-1000']), []) then SHowMessage('重复数据');
end;
lanwenfeng11 2004-12-15
  • 打赏
  • 举报
回复
我的意思是在存盘前判断主键是否重复了,提示给用户(主键的字段重复,比如:有些主键是3个字段组成的,要提示这3个字段名称重复了)而不是数据库提示的错误消息,
LikeVCL 2004-12-15
  • 打赏
  • 举报
回复
你的意思是数据库里的主键重复,但主键重复根本就保存不了啊,你的意思是怎样呢?
经典SQL语句大全 下列语句部分是Mssql语句,不可以在access中使用。   SQL分类:   DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)   DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)   DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)   首先,简要介绍基础语句:   1、说明:创建数据库 CREATE DATABASE database-name   2、说明:删除数据库 drop database dbname   3、说明:备份sql server   --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'   --- 开始 备份 BACKUP DATABASE pubs TO testBack   4、说明:创建新 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)   根据已有的创建新: A:create table tab_new like tab_old (使用旧创建新) B:create table tab_new as select col1,col2… from tab_old definition only C: select * into table2 from table   5、说明:   删除新:drop table tabname   6、说明:   增加一个列:Alter table tabname add column col type   注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。   7、说明:   添加主键:Alter table tabname add primary key(col)   说明:   删除主键:Alter table tabname drop primary key(col)   8、说明:   创建索引:create [unique] index idxname on tabname(col….)   删除索引:drop index idxname   注:索引是不可更改的,想更改必须删除重新建。   9、说明:   创建视图:create view viewname as select statement   删除视图:drop view viewname 10、说明:几个简单的基本的sql语句   选择:select * from table1 where 范围   插入:insert into table1(field1,field2) values(value1,value2)   删除:delete from table1 where 范围   更新:update table1 set field1=value1 where 范围   查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料!   排序:select * from table1 order by field1,field2 [desc]   总数:select count * as totalcount from table1   求和:select sum(field1) as sumvalue from table1   平均:select avg(field1) as avgvalue from table1   最大:select max(field1) as maxvalue from table1   最小:select min(field1) as minvalue from table1   11、说明:几个高级查询运算词   A: UNION 运算符    UNION 运算符通过组合其他两个结果(例如 TABLE1 和 TABLE2)并消去中任何重复行而派生出一个结果。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生的每一行不是来自 TABLE1 就是来自 TABLE2。   B: EXCEPT 运算符   EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。   C: INTERSECT 运算符   INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。   注:使用运算词的几个查询结果行必须是一致的。   12、说明:使用外连接   A、left outer join:   左外连接(左连接):结果集几包括连接的匹配行,也包括左连接的所有行。 SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c   B:right outer join:   右外连接(右连接):结果集既包括连接的匹配连接行,也包括右连接的所有行。   C:full outer join:   全外连接:不仅包括符号连接的匹配行,还包括两个连接中的所有记录。   其次,大家来看一些不错的sql语句   1、说明:复制(只复制结构,源名:a 新名:b) (Access可用)   法一:select * into b from a where 11   法二:select top 0 * into b from a   2、说明:拷贝(拷贝数据,源名:a 目标名:b) (Access可用) insert into b(a, b, c) select d,e,f from b;   3、说明:跨数据库之间的拷贝(具体数据使用绝对路径) (Access可用) insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件   例子:..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..   4、说明:子查询(名1:a 名2:b) select a,b,c from a where a IN (select d from b ) 或者: select a,b,c from a where a IN (1,2,3)   5、说明:显示文章、提交人和最后回复时间 select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b 6、说明:外连接查询(名1:a 名2:b) select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c   7、说明:在线视图查询(名1:a ) select * from (SELECT a,b,c FROM a) T where t.a > 1;   8、说明:between的用法,between限制查询数据范围时包括了边界值,not between不包括 select * from table1 where time between time1 and time2 select a,b,c, from table1 where a not between 数值1 and 数值2   9、说明:in 的使用方法 select * from table1 where a [not] in (‘值1’,’值2’,’值4’,’值6’)   10、说明:两张关联,删除主中已经在副中没有的信息 delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )   11、说明:四联查问题: select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....   12、说明:日程安排提前五分钟提醒 SQL: select * from 日程安排 where datediff('minute',f开始时间,getdate())>5   13、说明:一条sql 语句搞定数据库分页 select top 10 b.* from (select top 20 主键字段,排序字段 from 名 order by 排序字段 desc) a,名 b where b.主键字段 = a.主键字段 order by a.排序字段   14、说明:前10条记录 select top 10 * form table1 where 范围   15、说明:选择在每一组b值相同的数据中对应的a最大的记录的所有信息(类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.) select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)   16、说明:包括所有在 TableA 中但不在 TableB和TableC 中的行并消除所有重复行而派生出一个结果 (select a from tableA ) except (select a from tableB) except (select a from tableC)   17、说明:随机取出10条数据 select top 10 * from tablename order by newid()   18、说明:随机选择记录 select newid()   19、说明:删除重复记录 Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)   20、说明:列出数据库里所有的名 select name from sysobjects where type='U' 21、说明:列出里的所有的 select name from syscolumns where id=object_id('TableName')   22、说明:列示type、vender、pcs字段,以type字段排列,case可以方便地实现多重选择,类似select 中的case。 select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type   显示结果: type vender pcs 电脑 A 1 电脑 A 1 光盘 B 2 光盘 A 2 手机 B 3 手机 C 3   23、说明:初始化table1 TRUNCATE TABLE table1   24、说明:选择从10到15的记录 select top 5 * from (select top 15 * from table order by id asc) table_别名 order by id desc 随机选择数据库记录的方法(使用Randomize函数,通过SQL语句实现)   对存储在数据库中的数据来说,随机数特性能给出上面的效果,但它们可能太慢了些。你不能要求ASP“找个随机数”然后打印出来。实际上常见的解决方案是建立如下所示的循环: Randomize RNumber = Int(Rnd*499) +1   While Not objRec.EOF If objRec("ID") = RNumber THEN ... 这里是执行脚本 ... end if objRec.MoveNext Wend    这很容易理解。首先,你取出1到500范围之内的一个随机数(假设500就是数据库内记录的总数)。然后,你遍历每一记录来测试ID 的值、检查其是否匹配RNumber。满足条件的话就执行由THEN 关键字开始的那一块代码。假如你的RNumber 等于495,那么要循环一遍数据库花的时间可就长了。虽然500这个数字看起来大了些,但相比更为稳固的企业解决方案这还是个小型数据库了,后者通常在一 个数据库内就包含了成千上万条记录。这时候不就死定了?   采用SQL,你就可以很快地找出准确的记录并且打开一个只包含该记录的recordset,如下所示: Randomize RNumber = Int(Rnd*499) + 1   SQL = "SELECT * FROM Customers WHERE ID = " & RNumber   set objRec = ObjConn.Execute(SQL) Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")   不必写出RNumber 和ID,你只需要检查匹配情况即可。只要你对以上代码的工作满意,你自可按需操作“随机”记录。Recordset没有包含其他内容,因此你很快就能找到你需要的记录这样就大大降低了处理时间。 再谈随机数   现在你下定决心要榨干Random 函数的最后一滴油,那么你可能会一次取出多条随机记录或者想采用一定随机范围内的记录。把上面的标准Random 示例扩展一下就可以用SQL应对上面两种情况了。   为了取出几条随机选择的记录并存放在同一recordset内,你可以存储三个随机数,然后查询数据库获得匹配这些数字的记录:   SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3   假如你想选出10条记录(也许是每次页面装载时的10条链接的列),你可以用BETWEEN 或者数学等式选出第一条记录和适当数量的递增记录。这一操作可以通过好几种方式来完成,但是 SELECT 语句只显示一种可能(这里的ID 是自动生成的号码): SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"   注意:以上代码的执行目的不是检查数据库是否有9条并发记录。   随机读取若干条记录,测试过 Access语法:SELECT top 10 * From 名 ORDER BY Rnd(id) Sql server:select top n * from 名 order by newid() mysql select * From 名 Order By rand() Limit n   Access左连接语法(最近开发要用左连接,Access帮助什么都没有,网上没有Access的SQL说明,只有自己测试, 现在记下以备后查)   语法 select table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...   使用SQL语句 用...代替过长的字符串显示   语法:   SQL数据库:select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename   Access数据库:SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;   Conn.Execute说明   Execute方法   该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种:   1.执行SQL查询语句时,将返回查询得到的记录集。用法为:   Set 对象变量名=连接对象.Execute("SQL 查询语言")   Execute方法调用后,会自动创建记录集对象,并将查询结果存储在该记录对象中,通过Set方法,将记录集赋给指定的对象保存,以后对象变量就代了该记录集对象。   2.执行SQL的操作性语言时,没有记录集的返回。此时用法为:   连接对象.Execute "SQL 操作性语句" [, RecordAffected][, Option]   •RecordAffected 为可选项,此出可放置一个变量,SQL语句执行后,所生效的记录数会自动保存到该变量中。通过访问该变量,就可知道SQL语句队多少条记录进行了操作。   •Option 可选项,该参数的取值通常为adCMDText,它用于告诉ADO,应该将Execute方法之后的第一个字符解释为命令文本。通过指定该参数,可使执行更高效。   •BeginTrans、RollbackTrans、CommitTrans方法   这三个方法是连接对象提供的用于事务处理的方法。BeginTrans用于开始一个事物;RollbackTrans用于回滚事务;CommitTrans用于提交所有的事务处理结果,即确认事务的处理。   事务处理可以将一组操作视为一个整体,只有全部语句都成功执行后,事务处理才算成功;若其中有一个语句执行失败,则整个处理就算失败,并恢复到处里前的状态。    BeginTrans和CommitTrans用于标记事务的开始和结束,在这两个之间的语句,就是作为事务处理的语句。判断事务处理是否成功,可通过 连接对象的Error集合来实现,若Error集合的成员个数不为0,则说明有错误发生,事务处理失败。Error集合中的每一个Error对象,代一 个错误信息。 SQL语句大全精要 2006/10/26 13:46 DELETE语句 DELETE语句:用于创建一个删除查询,可从列在 FROM 子句之中的一个或多个中删除记录,且该子句满足 WHERE 子句中的条件,可以使用DELETE删除多个记录。 语法:DELETE [table.*] FROM table WHERE criteria 语法:DELETE * FROM table WHERE criteria='查询的字' 说明:table参数用于指定从其中删除记录的的名称。 criteria参数为一个达式,用于指定哪些记录应该被删除的达式。 可以使用 Execute 方法与一个 DROP 语句从数据库中放弃整个。不过,若用这种方法删除,将会失去的结构。不同的是当使用 DELETE,只有数据会被删除;的结构以及的所有属性仍然保留,例如字段属性及索引。 UPDATE 有关UPDATE,!!!!!!!!!!! 在ORACLE数据库 A ( ID ,FIRSTNAME,LASTNAME ) B( ID,LASTNAME) A 中原来ID,FIRSTNAME两个字段的数据是完整的 B中原来ID,LASTNAME两个字段的数据是完整的 现在要把 B中的LASTNAME字段的相应的数据填入到A中LASTNAME相应的位置。两个中的ID字段是相互关联的。 先谢谢了!!!! update a set a.lastname=(select b.lastname from b where a.id=b.id)   掌握SQL四条最基本的数据操作语句:Insert,Select,Update和Delete。    练掌握SQL是数据库用户的宝贵财 富。在本文中,我们将引导你掌握四条最基本的数据操作语句—SQL的核心功能—来依次介绍比较操作符、选择断言以及三值逻辑。当你完成这些学习后,显然你已经开始算是精通SQL了。    在我们开始之前,先使用CREATE TABLE语句来创建一个(如图1所示)。DDL语句对数据库对象如、列和视进行定义。它们并不对中的行进行处理,这是因为DDL语句并不处理数据 库中实际的数据。这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。   SQL中有四种基本的DML操 作:INSERT,SELECT,UPDATE和DELETE。由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。在图1中我们给 出了一个名为EMPLOYEES的。其中的每一行对应一个特定的雇员记录。请熟悉这张,我们在后面的例子中将要用到它。
2007 年下半年电子商务设计师下午试卷第 1 页(共 1 页) 全国计算机技术与软件专业技术资格(水平)考试 2007 年下半年 电子商务设计师 下午试卷 (考试时间 14:00~16:30 共150 分钟) 请按下述要求正确填写答题纸 1. 在答题纸的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。 2. 在答题纸的指定位置填写准考证号、出生年月日和姓名。 3. 答题纸上除填写上述内容外只能写解答。 4. 本试卷共5道题,全部是必答题。试题一至试题五均为15分,满分75分。 5. 解答时字迹务必清楚,字迹不清时,将不评分。 6. 仿照下面例题,将解答写在答题纸的对应栏内。 例题 2007年下半年全国计算机技术与软件专业技术资格(水平)考试日期是(1) 月(2)日。 因为正确的解答是“11 月3 日”,故在答题纸的对应栏内写上“11”和 “3”(参看下)。 例题 解答栏 (1) 11 (2) 3 2007 年下半年电子商务设计师下午试卷第 2 页(共 2 页) 【试说题阅明一某读】(高以共校下欲15说开分明发)和一 图个,成回绩答管问理题系1统至,问记题录3并,管将理解所答有填选入修答课题程纸的的学对生应的栏平内时。成 绩和考为试成这绩门12..课, 学每程其门生的主课的平要程平时功都时成能有成绩描绩3。述和到课如考6程下试个结:成单束 绩元后均构进由成行每,期门每末课个考程单试的元,主结其讲束成教后绩师会作上进为传行这给一门成次课绩测程管试的理,考系其试统成成。绩绩 作。 文课选件修程来了所3.确这包 在认门含记该课的录学程单学,生元生再是相成根否对绩据选应之课修,前程了如,信这果系息门是统文课,需件程那要和,么验课若这证程没些这单有成些元,绩成信那是绩息么有是文这效否件些的有来成,效验绩否。证是则首平无是先时效无,成的效根绩;的据如是。学果否 生他与信的这息确门将意其见之保45..存前 对若,在于一无系有门效统效课成不成程绩会绩的文处,所件理系有中这统,些将效并成其的将绩保平详。存时细 在成情课绩况程和提成考交绩试给文成教件绩务中都处。已。对经在于被教无系务效处统成没记绩有录,,给系系出统统具会会体单发处独送理在成课相程错完应误6.成。的 在通主成生知讲绩成给教列教师绩务,须列处用将,来核之告提对前知交之,该考后系门试的统课委成会程员绩生的会报成成审告一绩查返份已。还成经 系绩齐统报全。告。 给教主务讲处教根师据,需以要便,核请对求是系否统存生的进成行审绩7现.查, 采根。系用据考统结主试将构讲委会化教员生方师会成法核在最对对审终这后查的个的之成系成后绩统绩,单进报上,行告交并分,一通析系份知与统成每设生绩个计成审,选相查得课应结到学的果如生成给图。绩系 列统。,对递于交所考有试通委过员审会查 1-1 和图所示的顶层数据流图 1-2 所示的 0 层数据流图。 成绩管理系统 E2 E4 E1 E3 成绩单 成绩学报生告成绩核对后的成绩报告列成绩审成结果查绩生绩请列成求成无通效知绩完课通成知程图 1-1 顶层数据流图 2007 年下半年电子商务设计师下午试卷第 3 页(共 3 页) D5 验证学1生信息 记录无3效成绩记录有2效成绩 生成4绩列 E2 E4 E1 D1 D3 D2 生成最E终35成绩单 D4 无效成绩有效成绩 无绩效通成知成课程通完知 学生成绩成核对绩后报告的告成报绩列生请成求绩成绩列成绩审查结果 成绩单 图 1-2 0 【问题层数据流图 1 】( 4 使用说明中分的)词语,给出图 1-1 中的外部实体 E1~E4 【问题的名称。 2 】( 5 分) 使用说明中的词语,给出图 1-2 中的数据存储 D1~D5 【问题的名称。 3 】( 6 数据流图分) 1-2 缺少了三条数据流,根据说明及数据流图 1-1 这三条数据流的起点和终点。起点终点提供的信息,分别指出 2007 年下半年电子商务设计师下午试卷第 4 页(共 4 页) 试题二( 15 阅读下列分说)明,回答问题 1 至问题 4 【说某明汽】车维修站拟开发一套小型汽车维,修将管解理答系填统入,答对题车纸辆的的对维应修栏情内况。进行管理。 1 客户辆信户的息车名.辆如称对信、于息客新,户客包性户括质及:(车车个辆牌人,号、汽、单车车位维型)修、、管折颜理扣色率系等、统信联首息系先。人登一、记个联客客系户户电信至话息少,等有包信一括息台:;车客还。户要客编记户号录及、客车 2-1 所示。 2-1 客折户扣率编 号车 牌号9G5S %051 客联户系颜人名色称 ×杨客浩户东公及司 车车 辆型信 息客联户系性电话质车 辆类别8单2位 63 879 *0765 白色 帕萨特 微型车 2 小故车修障辆)现维.、修象记结,首录算先生维方委成修式托维车(给修辆自业委的付务托故、员书障三。。信包业如息、务。索员包赔对括)车:等辆维信进修息行类。检型维查(修和普厂故通的障、员分加工析分后)为、,:作与维业客修分户员类磋和(商业大,务、确员中定。、 2-2 所示。 2-2 维修委托书No.20070702003 登记日期: 2007-07-02 业作车业务牌分号员类 *中张修小07江 65 业客结务户算员方编号式编号 故0G自障1S付02描 0 5述1 维进预修厂计完时类型工间时 间 2普0通07 0702 1:09 车头损坏,水箱漏水 3 个或多.个维具修体车间维根修项据目维,修安委排托相书关和的车维辆修的工故及障工现时象,,在生已成有维的修维派修工项单目。中维选修派择并工确单如定一2-3 所示。 2-3 维修派工单No.20070702003 维修项目编号维修项目 工时 维修员编号 维修员工种012 维修车头 5.00 012 机修012 维修车头 2.00 023 漆工015 水箱焊接补漏 1.00 006 焊工017 更换车灯 1.00 012 机修4 .客户车辆在车间修理完毕后,根据维修项目单价和维修派工单中的工时计算车辆 2007 年下半年电子商务设计师下午试卷第 5 页(共 5 页) 此次根维据修需的求总阶费段用收,集记的录信在息委,托设书计中的。实体联系图(图 2-1 所示。图)和关系模式(不完整)如下 2-1 【概念结构中设业计务】员和维修工是员工的子实体。 图 2-1 【逻辑客结户构(设计】实体联系图 (5) 委车托辆书(车(牌号,客户编号,,车折型,扣颜率,色,联车系辆人类,别联)系电话) (6) 维修项目预( 维计修完项工目时编间号,,登维记,修日维项期修目,类,故型单障,价描作)述业,分总类费,用结) 算方式,进厂时间, 派工单(7) ,工时) 员工( (8) 【问题1】( ,工种,员工类型,级别) 4 根据问题分描)述,填写图 2-1 多和多对多三种,分别使用中(1)~(4)处联系的类型。联系类型分为一对一、一对 1 : 1 , 1 : n 或 1 : * , m : n 或 * : * 【问题2】( 示。 4 补充图分) 2-1 中的联系并指明其联系类型。联系名可为:联系 1 ,联系 2 【问题3】( ,…。 4 根据图分) 2-1 【问题4】( 和说明,将逻辑结构设计阶段生成的关系模式中的空(5)~(8)补充完整。 3 根据问题描分述),写出客户、委托书和派工单这三个关系的主键。 车辆 故障 委托书 派工 维修项目 客户 业务员 员工 维修工 1 (1) (2) (3) (4) 2007 年下半年电子商务设计师下午试卷第 6 页(共 6 页) 试题三(共 15 阅读以下说分明),回答问题 1 至问题 4 作【已说某完明软成】件,开开发始商进通行过测招试标和承调接试了阶一段个。企,业将的解电答子填商入务答网题站纸的的建对设应任栏务内。目。前,编码工【问题 1 】( 3 在电子商务分系)统的测试中 , 【测试问和题验收测试。以上哪些测试软步件骤测需试要总企体业上用分户成参四加步?:单元测试、集成测试、系统 2 】( 6 基本分) Web 系统测试的功能测试主要包括:链接测试、 Cookies 功能测试、数据库测试和帮助系统测试等。以下各种测试步骤分别测属试于、何种单功测能试测、交试易? A .帮助文档的格式是否符合目前流行的格式( 1 ) B .对数据一致性及数据库容量进行测试(2) C .对用户输入信息的显示是否按预期要求,如密码显示为‘ * ’等(3) D .是否能正确完整地保存注册信息(4) E .确保系统中没有孤立的页面存在 (5) F 【问题.检测用户身份识别和授权功能 (6) 3 】( 2 某程序流程分图)如图 3-1 所示。其中 A 、 B 、 C 均为二进制数, X 、 Y 、 Z 的初值均为 0, 如果对此流程进行多重覆盖测试,预期的结果为 X=1 、 Y=0 、 Z=1 ,正确的测试用例是 ( 7 ),请从以下备选项中选择正确的测试用例填在答题纸对应的位置。A . A=1 B=0 C=0 和 A=1 B=1 C=0 B . A=0 B=0 C=0 和 A=1 B=1 C=1 C . A=0 B=1 C=1 和 A=0 B=1 C=0 D . A=1 B=0 C=1 和 A=0 B=1 C=0 A=1or B=1 C=1 or A=0 X=1 Y=1 T F T F a b c d e Z=1 图 3-1 2007 年下半年电子商务设计师下午试卷第 7 页(共 7 页) 【问题 4 】( 4 完善图3分-2)所 示的调试过程,(从备选项中选择正确的答案填写在答题纸的相应位置。 11 测试结)果( 9 ( ) (10) 8 ) 假设错误原因图 3-2 ( 8 ) ~ ( 11 )备选答案: A .回归测试 B .测试 C .测试用例 D 试题四(共.修正程序 15 阅读以下说分明),回答问题 1 至问题 4 【说某明电】子商务网站采用,将解答填入答题纸的对应栏内。 SET 【问题支付模式完成网上支付。 1 】( 2 分) SET 支付模式的工作流程包括如下步骤: 1 .支付响应阶段2 .支付请求阶段3 .授权请求阶段4 .授权响应阶段5 正.确支的付流初程始顺化序请是求:和(响应阶段 1 ) A . 5-2-3-4-1 B . 2-1-3-4-5 C . 5-2-1-3-4 D . 2-1-5-3-4 【问题 2 】( 7 请根在据双支重付数请字求分阶签)名段技,利术用,在双(重数字签名技术可以保证商家不能看到客户的支付信息。 2 )~( 8 息成订的买货过信家程在息补电数充字子完摘商整要务。网和支站付选信购物息数品字后,摘生要)成,然处订后选货将择信订合息货适和信的支息答付数案信字,息摘将。买要商和家家支验利用付证信客哈希息户算订数字法货信摘生要连买接家起利来用,再(利用哈希算法生成双重数字摘要。 2 )对双重数字摘要加密生成双重数字签名,将( 3 )、( 4 )和( 5 发送给商家,商家收到信息后,将接收到的双重数字签名利用( ) 6 )解密,再利用同样 2007 年下半年电子商务设计师下午试卷第 8 页(共 8 页) 的哈希算法将( 7 )生成新的订货信息摘要,再将新的订货信息摘要与( 8 的双(重数字摘要,并与买家发送的双重数字摘要比较,以确保信息的完整性和)真生实成性新。 2 )~( 8 )的备选答案如下:(注:备选答案可重复选择) A .买家的公钥 B .买家的私钥 C .商家的公钥 D .商家的私钥E .订货信息数字摘要 F .支付信息数字摘要G .订货信息 H .支付信息 I 【问题.双重数字签名 3 】 (2 分 ) 在 SET 模式中,使用的公钥算法是( 9 )。 A . SHA B . DES C . IDEA D . RSA 【问题 4 】( 4 分) 1 .在 SET 和管理遵循(交易模式中,数字证书保证交易实体的身份真实可信,数字证书的发放 10 )标准。2 .在数字证书中,不包含( 11 )。 A .拥有者的公钥 B .证书的有效期C .拥有者的私钥 D 试题五(共.证书的序列号 15 阅读以下说分明),回答问题 1 至问题 3 【说某明公】司要开发一个招投标市场计算机,管将理解软答件填项入目答,具题体纸项的目对描应述栏如内。 5-1 。 5-2 【示问请分题根解据的以项上目描工作述先回后答顺下序列。问题。 1 】( 5 请根据分) 5-1 的项目描述,在答题纸对应位置完成项目里程碑甘特图。 2007 年下半年电子商务设计师下午试卷第 9 页(共 9 页) 5-1 项项目目名称标投入招投标项计目描算述机管理软件开发 180 万元,时间周期 1 年,起始时间 2005 年 1 月 1 试运行日, 20 交付物的计项划安目报及排,工文甘作天档特信,。图息修计记改划录时的文间制档忽,定略,项。项目目网执络行计划信图息、,项分目析、时间测计试、划工…作描述…开整发个、项测目试应、分运为行用等户需求调研、开发环境准备、系统设计、 6 所需资源估计人力及设备资源等的预计个。阶段。重大里程碑开工日期 2005 年 1 月 1 需求分析: 日,各项目完成日期如下: 2005 年 3 月 11 系统设计: 日; 2005 年 5 月 26 环境搭建及调测: 日; 2005 年 6 月 4 提交测试: 日; 2005 年 8 月 23 试运行启动: 日; 2005 年 10 月 24 【问题日。 2 】( 6 请根据分) 5-2 ,计算每项工作的最早开始时间和最迟开始时间,完成 5-3 算结果填到答题纸的对应位置。,并将计 5-2 序号工作代码工项作目工名作称先后顺序(部分工)期 / …… 天紧前工作1 114 用户需求确认 10 111 2 121 设备选型 10 114 3 122 设备采购 10 121 4 123 设备到货 10 122 , 120 5 124 环境搭建及调测 10 123 6 131 概要设计 20 114 7 132 数据库设计 10 131 8 133 详细设计 30 131 , 132 9 141 数据库开发 20 123 , 133 …… 2007 年下半年电子商务设计师下午试卷第 10 页(共 10 页) 5-3 工作代码最早开始时间最早完成时项目间工作时最间迟开始时间最迟完成时间114 40 50 40 50 121 50 60 70 80 122 60 70 80 90 123 90 100 90 100 124 100 110 100 110 131 50 70 ( 1 ) ( 2 ) 132 70 80 ( 3 ) ( 4 ) 133 80 110 ( 5 ) ( 6 ) 141 110 130 110 130 【问题 3 】( 4 计划图在图描,述如网单络代分计号)划或图双时代,号由网于络节图点等。示方式可以有多种形式,进而有多种形式的网络 5-1 是网络计划图中节点的一种示方法。依据图 5-1 码为的节点示格式及工作代 141 的节点示例图(如图 5-2 所示 ) ,完成图 5-3 所示工作代码为 122 答案填到答题纸的对应位置。的节点图,将0 130 110 0 130 110 始最最始早时工迟时开间作开间代总码时自时差由差成最最成早时迟时完完间间141数据库开发/20 / 持续时间 图 5-1 图 5-2 ( 7 ) 70 80 90 60 122 设备采购 /10 ( 8 图) 5-3

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧