说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在DELPHI中使用ADO对象存取ODBC数据库

HTML文档下载 WORD文档下载 PDF文档下载
在DELPHI中使用ADO对象存取ODBC数据库

作为一个ASP爱好者,笔者经常在ASP页面中使用ADO对象操作ODBC数据库,觉得用ASP创建WEB应用系统确定挺方便的.虽然在编程生涯中,笔者更喜欢Borland系列产品,对微软产品有点排斥,对ASP却是例外.某天,灵机一动,ADO对象是一个标准OLE对象,如果在DELPHI应用程序中能利用ADO操作数据库,应该挺不错.尤其在用DELPHI做网络数据库应用程序时,如果所在的WEB站点是WINNT站点并且支持ASP页面,就可以用ADO对象访问ODBC数据库,而不用把那么大的BDE再上载到站点上去,这样就可充分利用DELPHI和ASP的编程优势,做出更好的ISAPI/NSAPI/CGI.

经过编程和测试,在DELPHI中可以成功地用ADO对象存取ODBC数据库,现将使用经验写出来,与大家共享,让我们多一个访问ODBC数据库的方法.

在32位的DELPHI中,可以声明一个variant变量(如AVariant),然后通过CreateOleObject 创建一个OLE对象,如AVariant:=CreateOleObject('ADODB.Connection')可以获得一个数据库连接对象的实例,然后就可以利用该对象的方法和属性来操作ODBC数据库了.

下面简单介绍一下访问ODBC数据库所用到的ADO对象及其方法和属性.

1.数据库连接对象(ADODB.Connection)

该对象用于与ODBC数据库建立连接,所有对数据库的操作均通过该连接进行.

数据库连接对象ADODB.Connection的作用象Delphi中的TDatabase对象.

建立一个连接对象的方法为(AConnection为Variant类型变量):

AConnection:=CreateOleObject('ADODB.Connection')

用于建立连接的方法为Open,使用语法为(以对象AConnection为例):

AConnection.Open( ConnectionString

UserId

Password )

三个参数均为字符串类型,其中UserId和Password为用户名称和用户密码,用来访问。

数据库时使用,可以省略,因为在ConnectionString同样可以指定用户名称和用户 密码.ConnectionString是用来说明ODBC数据源信息的字符串,其格式为:

'Provider=ProviderName;DSN=DSNName;

DRIVER=driver; SERVER=server;

DATABASE=database;

UID=user; PWD=password'

其中:

Provider:数据提供者,默认为MSDASQL,为微软OLEDB,通常省略

DSN :要打开的数据库对应的OBDC系统数据源(DSN),是可选参数

DRIVER :要打开的数据库所用的驱动程序名称,如Access对应

Microsoft Access Driver(*.mdb),是可选参数

SERVER:要打开的数据库所在的服务器名称,本机可用(local),是可选参数

DATABASE:要打开的数据库名称,是可选参数

UID :用户名称,用来访问数据库,是可选参数

PWD :用户密码,用来访问数据库,是可选参数

以上参数均为可选参数,但必须提供足够的信息来描述一个系统数据源。

假如已经定义了一个ODBC的系统DSN,名称为MyDsn,那么就可用以下语句建立一个数据库连接:

AConnection.Open('DSN=MyDsn');

为了防止DSN不存在或其设置被他人修改时造成应用程序运行错误,可以用ADODB.Connection创建一个临时ODBC数据源,这样可以保证我们使用的系统DSN的参数设置是正确的.下面的语句可以创建一个临时ODBC系统DSN,对应一个ACCESS数据库,路径为

C:\Inetpub\wwwroot\test.mdb

AConnection.open('Driver={MicrosoftAccess Driver (*.mdb)};DBQ=

C:\inetpub\wwwroot\test.mdb')

建立一个ADODB.Connection后,如果不需要返回操作结果(如删除,修改,更新等操作)就可以对数据库进行正常的SQL操作了,此时应用ADODB.Connection的另外一个方法Execute,使用语法为:

AConnection.Execute( strSQL );

其中strSQL为执行操作的SQL语句,如删除操作可以为:delete from wfjcommu 用AConnection.Close关闭一个数据库连接.

2.数据集对象(ADODB.RecordSet)

如果要执行查询操作并返回查询结果,或者要更方便地操作数据表,就需要用到数据集对象了.

数据集对象ADODB.RecordSet的作用象Delphi中的TTable或TQuery对象.

建立一个数据集对象的方法为(ARecordSet为Variant类型变量):

ARecordSet:=CreateOleObject('ADODB.RecordSet')

从数据表取得数据的方法为Open方法,具体使用方法为:

ARecordSet.Open( strCommand

ActiveConnection

intCursorType

intLockType

intCommandType );

其中: strCommand:字符串,为命令参数,可以是一个Table名称,可以是一个SQL语句,也可以是一个服务器上的存储过程(StoredProc)名称,具体需要后面的参数intCommandType来指定.

ActiveConnection:要使用的数据库连接,是一个ADODB.Connection对象.

intCursorType:长整数,数据集的Cursor类型,可选参数,请参见程序中注释。

intLockType:长整数,对数据表的加锁类型,可选参数,请参见程序中注释。

intCommandType:长整数,命令参数的类型,用来指明strCommand的作用,可以指定strCommand为命令(如SQL语句)或数据表(TTable)或储存过程(StoredProc),可选参数,请参见程序中注释。

如执行一个SQL查询,可以采用如下语句:

ARecordSet.Open('Select * from wfjcommu'

adOpenStatic

adLockOptimistic

adCmdText);

其它常见属性和方法与TTable和TQuery相比较如下(具体请见ASP帮助文件):

eof

bof:eof

bof.

MoveFirst

MoveLast:First

Last

MovePrevious

MoveNext:Prior

Next

Move:MoveBy

AddNew:append

Update:Post

Close:close

Delete加Update:delete,所有对数据表的修改均须用Update使操作有效,这与Delphi不同。

Fields[FieldNo]:Fields[FieldNo]

Fields['FieldName']:FieldByName('FieldName')

3.其它常见对象(与Delphi对应的对象):

ADODB.Field:TField ADODB.Parameter:

TPara ADODB.Error:EDBEngineError

ADODB.Command:无 ADODB.Property:无

下面来看一个应用例子,听别人说总不如自己看实际的例子来体会。在这个例子中,将演示如何利用ADO对象来对一个数据表进行查询、增加记录、修改记录和删除记录操作。具体的用法请参见程序中的注释,如果有点Delphi数据库编程经验,相信不难理解。

在我们的例子使用的数据库为Test.MDB,其中有一个数据表为wfjcommu,有五个字段AName、Portable、Tel、BP、PostAddress,分别表示姓名、手机号、电话号码、呼机号码和通信地址。

procedure TForm1.Button1Click(Sender: TObject);

{*****************************************************

用ADO操作ODBC数据库本程序中,将创建一个临时的ODBC系统数据源,指向一个MsAccess数据库,然后对其中的数据表进行显示、增加、修改、删除和查询操作注意:请在Uses语句中包含ComObj单元

*****************************************************}

const{ 一些常量声明,详细请参见adovbs.inc }

{ ---- CommandType的常量说明 ---- }

adCmdUnknown = 0008;//未知

需要系统来判断

速度慢

为缺省值

adCmdText = 0001;//命令语句如SQL语句

adCmdTable = 0002;//数据表名称

adCmdStoredProc = 0004;//存储过程名称

{ ---- CursorType的常量说明 ---- }

adOpenForwardOnly = 0;//只能由前向后单向访问

为缺省值

adOpenKeyset = 1;//可见其他用户对数据的修改

但对其它用户的增加和删除不可见

adOpenDynamic = 2;//其他用户对数据的增加修改和删除均可见

adOpenStatic = 3;//其他用户对数据的增加修改和删除均不可见

{---- LockType的常量说明 ---}

adLockReadOnly = 1;//只读

为缺省值

adLockPessimistic = 2;//在修改时

按单个记录锁定

adLockOptimistic = 3;//在修改后更新时

按单个记录锁定

adLockBatchOptimistic = 4;//在成批更新时记录锁定

var

AConnection

ARecordSet : variant;

longintTemp : integer;

strTemp : string;

intIndex : integer;

begin

{创建一个临时的ODBC数据源

指向一个MsAccess数据库

并利用此DSN建立一个数据库连接}

AConnection := CreateOleObject('ADODB.Connection');

AConnection.Open('Driver={Microsoft Access Driver

(*.mdb)};DBQ=C:\inetpub\wwwroot\test');

{建立一个数据集对象

并从数据表中提取数据}

ARecordSet := CreateOleObject('ADODB.RecordSet');

ARecordSet.open( 'wfjcommu'

AConnection

adOpenStatic

adLockOptimistic

adCmdTable );

memo1.lines.clear;

memo1.lines.add('********数据表原有的内容如下********');

{显示各个域的域名}

strTemp := '';

for intIndex := 0 to ARecordSet.Fields.count - 1 do

strTemp := strTemp + ARecordSet.Fields[intIndex].name+';';

memo1.lines.add( strTemp );

{显示各个域的内容}

while not ARecordSet.eof do

begin

strTemp := '';

for intIndex := 0 to ARecordSet.Fields.count - 1 do

strTemp := strTemp + ARecordSet.Fields

[intIndex].value+';';

memo1.lines.add( strTemp );

ARecordSet.MoveNext;//移到下条,Next

end;

{增加一个记录}

ARecordSet.AddNew;//增加

Append

ARecordSet.Fields['AName'] := '1';

//以FieldByName的方式存取

ARecordSet.Fields['Portable'] := '2';

ARecordSet.Fields(2) := '3';

//以Fields[index]的方式存取

ARecordSet.Fields(3) := '4';

ARecordSet.Fields(4) := '5';

ARecordSet.Update;//更新,Post

ARecordSet.MoveFirst;//移到首条,First

memo1.lines.add('********增加了一条

记录后的数据表的内容如下********');

{显示各个域的内容}

while not ARecordSet.eof do

begin

strTemp := '';

for intIndex := 0 to ARecordSet.

Fields.count - 1 do

strTemp := strTemp +

ARecordSet.Fields[intIndex].value+';';

memo1.lines.add( strTemp );

ARecordSet.MoveNext;//移到下条,Next

end;

{修改最后一条记录}

ARecordSet.MoveLast;

ARecordSet.Fields['AName'] := '11';

//以FieldByName的方式存取

ARecordSet.Fields['Portable'] := '22';

ARecordSet.Fields(2) := '33';

//以Fields[index]的方式存取

ARecordSet.Fields(3) := '44';

ARecordSet.Fields(4) := '55';

ARecordSet.Update;//更新,Post

ARecordSet.MoveFirst;//移到首条,First

memo1.lines.add('********修改了最后一条

记录后的数据表的内容如下********');

{显示各个域的内容}

while not ARecordSet.eof do

begin

strTemp := '';

for intIndex := 0 to

ARecordSet.Fields.count - 1 do

strTemp := strTemp +

ARecordSet.Fields[intIndex].value+';';

memo1.lines.add( strTemp );

ARecordSet.MoveNext;//移到下条,Next

end;

{删除最后一条记录}

ARecordSet.MoveLast;//移到末条,Last

ARecordSet.delete;//删除,delete

ARecordSet.Update;//更新,在Delphi不需要

ARecordSet.MoveFirst;//移到首条,First

memo1.lines.add('********删除了最后一条

记录后的数据表的内容如下********');

{显示各个域的内容}

while not ARecordSet.eof do

begin

strTemp := '';

for intIndex := 0 to ARecordSet.Fields.count - 1 do

strTemp := strTemp + ARecordSet.

Fields[intIndex].value+';';

memo1.lines.add( strTemp );

ARecordSet.MoveNext;//移到下条,Next

end;

ARecordSet.Close;{关闭数据集}

{用SQL语句进行查询

查询姓名为“张三”的记录}

{注意,在SQL语句中,字符串应该用单引号包括起来}

ARecordSet.open( 'select * from wfjcommu

where AName = ''张三'''

AConnection

adOpenStatic

adLockOptimistic

adCmdText );

memo1.lines.add('********张三的内容如下********');

memo1.lines.add( '共有' + IntToStr

( ARecordSet.RecordCount ) + '条匹配的记录' );

{显示各个域的内容}

while not ARecordSet.eof do

begin

strTemp := '';

for intIndex := 0 to ARecordSet.Fields.count - 1 do

strTemp := strTemp + ARecordSet.Fields

[intIndex].value+';';

memo1.lines.add( strTemp );

ARecordSet.MoveNext;//移到下条,Next

end;

{关闭数据集和数据库连接}

ARecordSet.close;

AConnection.close;

end;

以上程序在PWIN98+DELPHI3.0+PWS(Personal Web Server)4.0下调试通过.

关于ADO对象的详细资料,请参见ASP帮助文件或Interdev帮助文件或OFFICE2000的有关文档。

《近匠》Wijmo 5 CTO:从Web到移动,我的25年编程生涯 重复充电、防丢失!多功能智能行李箱Bluesmart 【设计经验传承】图标设计初阶要先型 “光年”光纤路由 支持千兆网络的家居中心 MDCC 2014移动开发技术与平台峰会:知名应用技术大牛传授实战经验 Unity生态圈将变?EA前总裁接替创始人任新CEO 第九届中国Linux内核开发者大会在京举办 《近匠》爱拍SDK:手游录像分享 爱拍才会赢 Mark走起!iOS开发最常用的第三方库 【CTO俱乐部读书会】《人件》译者肖然:软件工程是社会学 错过就要等一年 深圳微信开发者大会不容错过的十大理由 【干货】国外程序员整理的 C++ 资源大全 一周消息树:被投资人“送”入看守所,创业人汪洁有罪还是无罪? 聚焦五大主题 Atlassian Summit 2014精华PPT下载 2014中国移动开发者大调查第四期获奖名单曝光 【问底】许鹏:使用Spark+Cassandra打造高性能数据分析平台(一) 【特惠倒计时两天】参加深圳微信开发者大会赠书及全套讲师讲义 《英雄联盟》支撑最高750万同时在线用户的聊天服务打造 深圳云软技术副总黄榕振:招行信用卡微信公众号开发高级篇 来自未来的你,MDCC 2014新奇智能硬件揭秘 Twitter开源云环境时间序列数据断层检测工具BreakoutDetection 浅析Facebook软件架构:Tao和BLOB的实现原理 【图文实录】CTO俱乐部:走近Keen Team,走近智能设备Hack 2014聚合开发者大会(JDDC)在京召开 专访腾讯反病毒实验室:揭秘TAV引擎,哈勃分析系统两大利器 Cocos Studio v2.0 Beta0正式发布!多维升级,合三为一 环信即时通讯云获3000万融资 用于研发运维 苹果谷歌都无力?前员工开发跨设备无缝同步应用 带你看会带你飞!MDCC 2014移动开发者大会参会指南 Meteor 1.0发布 构建更好的Web应用 【专访】敏捷专家吴穹:敏捷测试的行业应用与实战解析 关于Treeview的几个问题? 怎样才能实现按返回按钮以后,自动刷新刚刚提交的页面!代码如下,请帮我改改! HELP!!! 请问VB关闭WINDOWS下面的所有窗口的命令是什么?谢谢 数据移植问题,多帮忙呀! 问来问去,也没问出个所以然来。干脆再简化一下问题吧。 如何制做帮助文件? 一个XML绑定数据集的问题? 多层数据库一问!!!!!!!!!!!!!!!!!!!!!!!!!! 关于winvnc(在线等待) 请问“数据结构”这门课主要是学什么的? 这个毛病是什么原因?(加急,肯请赐教) 在线等候?自定义控件问题? 请问知道进程的ID值和句柄,能否控制程序窗口的大小? 多层数据库疑问!!!!!!!!!!!!!!!!!!!!!!!!!!! 关于IBM AS/400 DB2数据库编程 怎么从_streamptr 中恢复 recordset? 与数据库建立联接的后续问题 早上偶然看见前女友从眼前走过,突然有种莫名的感动 歌词和音乐同步问题?winnap的歌词插件基于什么样的原理做出来? 一个菜鸟的苦恼!! 用命令行配置IIS的命令是什么? 看看这个程序到底错在哪? 查找点对象问题,各位进来帮我看看 各位朋友一定请帮忙,关系到我工作问题(不是很难) 用ASP和Javascritp或Vbscript配合将SQL Server里的数据在客户端转换成EXCEL文件 Application的问题,急 谁能告诉我《银色幻想》在哪里有得下,万分感谢!!给分多多 新開一貼,sql語句請教,急,給分!!! 局域网内指定IP出现“该静态IP地址已经使用”,原理如何,如何编程实现。 一个语句的写法,up者有分 关于数据汇总的精典SQL语句求教! 有奖捉疵 50分 怎么打*****号部分的代码总不执行啊? 请问如何列举当前打印机支持的纸张信息? 歌词和音乐同步问题?winnap的歌词插件基于什么样的原理做出来? 急救!!!关于对话框中编辑框重画问题 小问题。。。。只想知道为什么。。。。 转载(贫富悬殊的中国) !!!用ASP能否实现一次上传一整个目录下所有的文件(子目录不算)?高手请答复! TreeView专题讨论 j2me中请问如果将textField中的内容写入到moto388手机的记事本中? 在vc中调用其他的exe include 另外一个jsp文件时,能向那个文件传参数吗?不能的话,有其他办法吗?谢谢 系统不能识别DaysBetween,如何处理 请问如下通过web连续下载图片,只是第一张要提示,以后每张就不再提示了? 关于ADO驱动MDAC版本的疑问 兄弟要工作了,是不是只要见到领导都要打次招呼? 我的问题!! 最近在用MFC写GDI程序,请前辈们给点建议 老兄给一些建议啊!用VB做什么毕业设计比较合适啊? 急,获取主板信息的问题! 梵高的星空介绍解说或赏析《星空》 玉龙雪山好玩么?我不知道怎么说呢听朋友 说丽江玉龙雪山很美,那有什么好玩的呢?是否有朋友说的具体些. 把16根火柴首尾相接,围成一个等腰三角形,你能围出等腰三角形吗?若能围成等腰三角形,那你再试试看,那你再试试看做多围成多少种不同的等腰三角形 中国近代国学大师有哪些 高一化学除杂质的问题写出除去下列杂质(括号内为杂质)所需要的试剂的化学式.1)NaCl(NaCO3)2)CO2(CO)3)N2(O2)4)CuCl2(CuSO4)5)CaCO3(CaCl2)6)O2(CO2) 日本明治维新是什么性质的改革 为什么梵高和几米都画过《星空》啊?有区别吗我想买电影《星空》的同款拼图 可是发现梵高和几米的都有肿么回事哈 高一化学如何除杂质 日本明治维新的性质从什么变为什么? 中国著名的国学大师简介 机械能守恒定律是什么? 明治维新是什么时间进行的什么性质的改革 变量与常量之间有关系吗?注意不是自变量与因变量 在平面上用18根火柴首尾相接围成等腰三角形,这样的等腰三角形一共可以围成多少个? 有没有单面反射 单面透射的材料?有没有一种材料薄膜或多种材料的组合,当光从一面射入时,透射率很高反射率很低,而从另一面入射时反射率高透射率低? 赏析梵高的《星空》赏析这幅图……要大概200字左右……http://image.baidu.com/i?ct=503316480&z=0&tn=baiduimagedetail&word=%E8%F3%B8%DF+%D0%C7%BF%D5&in=14546&cl=2&cm=1&sc=0&lm=-1&pn=5&rn=1&di=663445721&ln=522 用18根火柴首尾相接,围成一个等腰三角形,试问最多围成几种不同的等腰三角. 机械能守恒定律的条件一个木块从光滑斜面滑下,因为只有重力做功,木块机械能是守恒的如果斜面是不光滑的,木块受摩擦力,又给木块施加一个和摩擦力大小相等,方向相反的力F,那么还可以认 中国国学大师是谁?我想知道中国国学大师是谁? 把18根火柴围成一个等腰三角形,能围几种 说明理由可能要列不等式 机械能守恒定律的应用质量为m的滑块放在光滑的水平平台上,平台右端与水平传送带相接,传送带的运行速度为v,长为L,将滑块缓慢向左压缩固定在平台上的轻弹簧,到达某处时突然释放,当滑块 第三次科技革命给人们带来哪些深刻影响? 把十八根火柴首尾相连,围成一个等腰三角形,共可以围成哪几种不同的等腰三角形,请写出每种情况下各边的火柴根数. 利用机械能守恒定律. 与您的提问“桌面高为H质量为m的小球从离开桌面高h处自由落下,不计空气阻力,假设桌面处的重力势能为零,求小球落到地面前瞬间的机械能详细步骤不要只写公式 梵高《星空》的英文介绍200词左右 把18根火柴围成一个等腰三角形,能围几种 (列不等式组算) 机械能守恒定律在一个系统中如何应用阿?我想知道到底怎么用阿,都变成两个物体了 请问“国学”的具体定义和主要内容都是什么吗?中国的国学大师都有谁呢? 烟和雾算不算气体?烟是由固体小颗粒分散到空气中形成的.雾是由小液滴分散到空气中形成的. 如何更好的运用机械能守恒定律 水平地面上的物体在水平方向受到一拉力和地面对他的摩擦力的作用.在物体处于加速状态的条件下.说法对的A,当F增大时,f也随之增大 B当F 增大时,f保持不变 c F与f 是一对作用力与反作用力 D 不等式1/f(x)>1对任意x属于(0,3/4]恒成立、求a-取值范围 波长400-760nm的白光入射光栅在30°的衍射观察到第二级主最大,并能在该处Δλ=0.005nm两条谱线,可是30°方向难观察400nm主最大求光栅常数d光栅缝宽b光栅总宽度D 在现代光栅光谱仪中,为什么用闪耀光栅代替平面透射光 机械能守恒定律总结 石灰碱是氢氧化钙吗 关于气压的题目,某题"要尽快排出较封闭房间内的烟雾,可以在排气扇下方的地面上":点燃一较大的蜡烛..有两个疑问 1.蜡烛所在不是应该气温高.那么气压不应该相应是小的,为什么热空气会上 以3~4人为一组做这样一个游戏:用36跟火柴棒首尾相接围成一个等腰三角形,最多能围成多少种不同的等腰三角形要用不等式求解 I am also confused the original one before ,I have been lonely 国内有没有哪一家做分光光栅比较好的?光谱仪上用的! 把20根火柴首尾相接,围成一个等腰三角形,最多能围成多少种不同形状的等腰三角形尽量给出不等式 如何在数轴上做出原点的距离为根号5的点 水是弱电解质,但是它作溶剂后,某些溶液比如蔗糖溶液,为什么就是非电解质溶液了呢? 为什么有些物质不用折射光,只要反射光,就可以看到7种颜色? 南半球有美有亚寒带针叶林气候?为什么? 两物体叠加在地上,当两个物体开始受不同的拉力时,那它们对相互的摩擦力是多少 物质在常温下分为几种状态 当整数m为何值时,直线5x+4y=2m+1与直线2x+3y=m相交于第四象限? 两个叠加的物体,对上面的物体施加拉力,物体静止两物体之间有摩擦力吗?如果2物体匀速运动,拉下面物体,上面物体不受摩擦力那谁给他的力让他前进呢 物质的变化分为哪几种? This is the second time I have been___by that person,I shall never trust him againA:inadequateB:disappointingC:let downD:unsatisfactory选哪个?为什么?(我现在正在初学英语, 硫酸钡销售有几种原料 用16根火柴棒首尾相接,围成一个等腰三角形,你能围成吗?请你再试试看最多能围成多少种不同的等腰三角形?你能简要说明理由吗?(注意有三个问) 为什么南半球附近没有亚寒带针叶林气候? 有关压强的题目矗立在天安门广场上的人民英雄纪念碑,碑身高37、94米,由413块花岗石石块砌成.碑心石是一块完整的花岗石,长为14、7米,宽为2、9米,厚为1米,上面刻有“人民英雄永垂不朽”.若 机械能守恒定律问题?斜面倾角θF的功率不变,可使物体沿倾角为θ的斜面以速度v匀速上升;若此力拉着该物体沿斜面下滑,可以速度2v匀速下滑;若此力拉着物体在同样路面的水平面上运动,则 三次函数的图像经过(-1,6),(0,8),(1,8)三个点,求它的解析式. 薄什么时候读bo什么时候读bao急 有关压强的题一辆坦克过大坑,履带一半在地面,一半在空气袋上(气囊),气囊上的压强应该用坦克总重力除以气囊面积还是用一半重力除以面积?为什么? 用100根火柴首尾相接围三角形,最多可以围成多少种不同的等腰三角形 美国男孩携玩具枪街头把玩不肯放下 被挪威称曾试图阻止一名肯尼亚恐袭男子加哈里王子女友获邀参加乔治洗礼式 二人美国少女携枪照顾男童 致其玩枪走火把叙武装分子发表在叙被劫持的俄罗斯工程今日言论:\"梅德韦杰夫亲切实在幽默美13岁男孩手持仿真枪向警察展示 被潘基文敦促莫桑比克冲突双方通过对话解评论:沙特不收联合国“大礼”有人欢喜男子劳动合同被“单方解约” 半年三上台“立法院”空转一个月 民进党扯了谁报告称朝鲜核试验场挖新坑道 短期内不奥巴马称阿富汗战后方案有助长期保护巴江苏常熟美女老板获死缓 自辩称轻信了南京雨污分流工程因季建业下台或被叫停江苏13市9月空气质量排名 盐城最优同济大学自主研发地铁安全控制系统江苏常熟美女老板获死缓 自辩称轻信了广东湛江城管执法男店主被断11根肋骨总决赛-小威8连胜A-拉德 阿扎爆冷恒大派最强阵出征韩国 穆里奇无碍仍可明年起重疾险涨价48%?寿险公司:从专偷汽车倒后镜 留下纸条索钱财团体票门槛降 5人便可起订大S晒大肚照,汪小菲赞“贡献大!”驻东帝汶大使夫人李春梅拜会东总统夫人男子入职四天后盗走公司百万仪器(图)“五星级”享受为何抵不过“物美价廉”情倾澳网,海阔天空哈佛恒大达成“校企”合作成立三大中心保健品企业加紧升级生产基地连锁餐企接手荣华楼,是真的丁俊晖成中国独苗陪陪自己防骗常识广州车展美女特搜下一篇NBA战报是我们的方向广州车展找亮点新车、美女、混动……还下一篇明年致尚XT要拿自主两厢车冠军
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘