Roger Jennings’ database developer’s guide with Visual Basic 6

副标题:无

作   者:(美)[R.詹宁斯]Roger Jennings著;前导工作室译

分类号:

ISBN:9787111072683

微信扫一扫,移动浏览光盘

简介

   本书详细叙述了使用Visual Basic 6进行各种数据库应用程序开发的方法,全书共分为七大部分,分别叙述了ActiveX数据对象和绑定控件、数据库和查询设计概念、数据库前端应用程序设计、数据存取和自动化高级编程、多用户与客户/服务器数据库前端、数据库与intranet和Internet及企业级开发技术,几乎覆盖了使用Visual Basic 6开发数据库应用程序的各个方面,并且包含大量示例,具有很好的参考价值。   本书叙述清晰,实用性强,是计算机应用人员及大专院校师生不可多得的参考书。   本书详细叙述了使用Visual Basic 6进行各种数据库应用程序开发的方法,全书共分为七大部分,分别叙述了ActiveX数据对象和绑定控件、数据库和查询设计概念、数据库前端应用程序设计、数据存取和自动化高级编程、多用户与客户/服务器数据库前端、数据库与intranet和Internet及企业级开发技术,几乎覆盖了使用Visual Basic 6开发数据库应用程序的各个方面,并且包含大量示例,具有很好的参考价值。   本书叙述清晰,实用性强,是计算机应用人员及大专院校师生不可多得的参考书。   

目录

目 录

译者序

前言

第一部分 activex数据对象和绑定控件

第1章 visual basic对企业级开发的支持 1

1.1 与visual basic 6数据相关的新特性 1

1.2 过渡到ole db和ado 4

1.2.1 ole db 5

1.2.2 activex数据对象 6

1.3 剖析data environment designer和data
view窗口 7

1.4 采用ado兼容的控件 11

1.5 绑定层次型flexgrid到recordset 13

1.6 利用data report designer设计打印

报表 14

1.7 利用data form wizard自动化设计 16

1.8 绑定数据源和使用者 17

1.9 使用visual data tools 18

1.10 掌握microsoft sql server 20

第2章 理解ole db和universal data

. access 22

2.1 数据接口 22

2.1.1 利用ole db自下而上重新设计 23

2.1.2 映射ole db接口到ado 25

2.2 创建adodb.recordset 26

2.2.1 编码打开adodb.connection之上

的adodb.recordset对象 27

2.2.2 从dataenvironment对象打开

adodb.recordset对象 28

2.2.3 绑定datagrid控件到command对象 31

2.2.4 使基于command的recordset成为

可更新的 32

2.3 剖析顶层ado的属性、方法和事件 33

2.3.1 object browser和ado 33

2.3.2 adodb.connection对象 34

2.3.3 adodb.command对象 45

2.3.4 adodb.recordset对象 51

2.4 分析特定提供者adodb.properties

集合 60

2.4.1 connection对象的properties集合 61

2.4.2 command对象的properties集合 65

2.4.3 recordset对象的properties集合 66

第3章 从dao和rdo过渡到ado 68

3.1 比较ado、dao和rdo对象模型 68

3.1.1 ado 2.0和dao 3.5x 69

3.1.2 ado 2.0和rdo 2.0 71

3.2 从dao.recordset到adodb.recordset

对象 72

3.2.1 比较dao.recordset和adodb.
.recordset的属性 72

3.2.2 比较dao.recordset和adodb.
recordset的方法 73

3.3 利用vba代码处理adodb.recordset

对象 74

3.3.1 直接创建recordset 75

3.3.2 在connection对象上打开recordset 76

3.3.3 在command对象上打开recordset 77

3.3.4 为安全的数据库指定jet workgroup

文件 78

3.3.5 表的批量更新 79

3.4 利用adodb. recordset的新特性 80

3.4.1 存储和打开文件型recordset 80

3.4.2 用variant值和数组来编辑和添加

记录行 81

3.4.3 用close和open方法重用connection

和recordset对象 82

3.5 采用adodb. recordset的find方法 86

3.6 从rdoresultsets和odbcdirect recordset

过渡到adodb. recordset 89

3.6.1 比较rdoresultset和adodb. recordset

的属性 89

3.6.2 比较rdoresultset和adodb. recordset

的方法 90

3.6.3 比较rdoresultset和adodb. recordset

的事件 90

3.7 理解层次型recordset 90

3.7.1 用data environment designer创建

relational hierarchical recordset 93

3.7.2 在层次型flexgrid控件中显示层次

型recordset 95

3.7.3 用层次型recordset取代access的

form/subform组合 96

第4章 使用ado data控件和绑定控件 98

4.1 创建带有用来显示和编辑数据的文

本框的窗体 98

4.1.1 使用data form wizard创建数据项

窗体 98

4.1.2 向data environment designer窗体

中添加adodc 103

4.2 剖析adodc数据相关的属性和事件 107

4.2.1 adodc的属性 107

4.2.2 adodc的事件 109

4.3 介绍成批乐观更新 109

4.4 简单绑定数据使用者控件 110

4.4.1 设置dataformat属性值 110

4.4.2 用代码对控件实现简单绑定 112

4.5 复杂绑定数据使用者控件 113

4.5.1 绑定datagrid到dataenvironment

对象 113

4.5.2 从绑定datalist控件中选择条目 116

4.5.3 绑定datalist控件 119

第二部分 数据库和查询设计概念

第5章 优化关系数据库的设计 123

5.1 数据库系统分类 123

5.1.1 数据库术语 125

5.1.2 平面文件数据库 127

5.1.3 网络和层次数据库模型 127

5.1.4 关系数据库模型 128

5.1.5 关系数据库管理者类型 129

5.1.6 关系型sql数据库管理系统 130

5.1.7 三层客户/服务器体系结构和商业

规则 130

5.1.8 microsoft access:混合的

rdbms 132

5.2 数据建模 132

5.2.1 数据库图表 133

5.2.2 在数据库设计中使用建模工具 134

5. 3 关系数据库的设计规则 134

5.3.1 组织实体类 135

5.3.2 规范化表数据 136

5.4 为提高性能和域完整性而建立

索引表 140

5.4.1 表索引方法 141

5.4.2 选择建立索引的字段 142

5.5 数据仓库和oltp数据分析 143

第6章 学习结构化查询语言 146

6.1 sql基础回顾 147

6.1.1 sql语句的成份 147

6.1.2 sql与计算机程序语言的差异 148

6.1.3 ansi sql的类型 149

6.2 书写ansi sql语句 150

6.2.1 sql语句的分类 151

6.2.2 sql语法格式 152

6.2.3 一个简单的sql select语句的

实用语法 153

6.2.4 利用可视化数据示例应用程序来

浏览查询 154

6.2.5 sql操作符和表达式 157

6.2.6 连接表 159

6.2.7 使用嵌套查询和子查询 166

6.2.8 联合查询 168

6.2.9 sql汇总函数和group by及

having子句 169

6.3 比较jet sql方言和ansi sql-92 171

6.3.1 ansi sql保留字和jet sql

关键字 171

6.3.2 ansi sql和jet sql间的数据类型

转换 173

第7章 运行交叉表和动作查询 175

7.1 用交叉表查询表示汇总数据 175

7.2 用transform和pivot创建交叉表

查询 178

7.2.1 用谓词in创建固定列标题 180

7.2.2 创建分类交叉表查询 181

7.3 把交叉表查询作为dataenvironment

命令执行 181

7.4 定义动作查询 183

7.4.1 用vba代码执行动作查询 184

7.4.2 vba代码中动作查询的等价体 184

7.4.3 执行动作查询时维护引用一致性 185

7.5 使用sql动作查询 185

7.5.1 用制表查询创建新表 185

7.5.2 向已存在的表中添加记录 186

7.5.3 更新表中数据值 187

7.5.4 从表中删除记录 187

第8章 用odbc连接桌面数据源 188

8.1 理解odbc api的结构 189

8.1.1 单层和多层odbc驱动程序 190

8.1.2 odbc api的一致性级别 190

8.1.3 odbc sql一致性级别 190

8.1.4 内置的odbc标量函数 192

8.2 浏览odbc初始化文件和注册表记录 193

8.2.1 三种dsn类型 193

8.2.2 odbcinst.ini 194

8.2.3 odbc.ini 196

8.2.4 odbcinst.ini和odbc.ini的注

册表键值 197

8.2.5 连接组合和跟踪 197

8.3 为dbase表创建和使用dsn 198

8.3.1 创建新的system dsn 199

8.3.2 通过kagera连接到dbase数据源 200

第三部分 数据库前端应用程序设计介绍

第9章 设计一个决策支持前端应用

程序 203

9.1 组织决策支持前端应用程序幕后的

数据 203

9.1.1 指定数据源 204

9.1.2 确定所需细节的层次 205

9.1.3 利用rollup(累计)保证性能和数据

一致性 206

9.2 设计查询策略 207

9.2.1 放弃jet querydef对象 207

9.2.2 设计sql累计查询 208

9.2.3 从access导入querydef sql语句 210

9.2.4 实现特定查询 214

9.3 设计用户界面 214

9.3.1 优化应用程序的易用性 214

9.3.2 确认toolbar按钮的功能 218

9.4 创建和使用按钮栏和工具栏 219

9.4.1 获得和修改按钮的位图 219

9.4.2 添加代码以显示和隐藏窗体 220

9.5 由累计数据创建图表 220

9.5.1 创建line graph 221

9.5.2 制作bar和area chart 223

9.5.3 显示pie chart 225

9.6 用msflexgrid控件来显示详细数据 226

第10章 利用数据绑定activex控件 230

10.1 操作datagrid和分层flexgrid 230

10.1.1 定义datagrid控件格式 231

10.1.2 datagrid控件的特殊属性、方法

和事件 234

10.1.3 定义msflexgrid和mshflexgrid

控件的格式 237

10.2 创建和显示分层recordset 243

10.2.1 用数据环境设计工具生成层式

命令 243

10.2.2 在mshflexgrid中显示rscustomer
recordset 245

10.2.3 用代码操作层次recordset 247

10.3 用picturebox和图像控件保存和

显示图像 249

10.3.1 用于索尼visca设备的vb视频

播放系统 249

10.3.2 使用avit research的lanc
activex控件 254

10.3.3 捕获、显示和存储视频图片 254

10.3.4 为adobe premiere创建批捕获

日志 255

第11章 图形化显示crosstab查询所产生

的汇总数据 257

11.1 组织一个基于chart的决策支持应用

程序 257

11.1.1 在单一应用程序中组合管理

级别 258

11.1.2 开发一个图表的定义表格 259

11.1.3 创建测试应用程序的数据 261

11.2 为复杂决策支持应用程序确定导航

方法 264

11.2.1 使用多文档界面 265

11.2.2 设计导航工具条 266

11.2.3 mdi父窗体的菜单结构 267

11.2.4 用代码来改变工具条按钮、mdi

子窗体和图的大小 268

11.2.5 在设计状态下设置graph的属性 269

11.2.6 实现前两个图表级别 271

11.2.7 为mdi子窗体增加详细网格 276

11.2.8 添加图和表的导航代码 281

11.2.9 打印和保存图和表 283

第12章 利用report designer和vba代

码创建报表 285

12.1 设计和打印一个简单的datareport 285

12.1.1 首先设计一个半格式化的简单

报表 286

12.1.2 调整大小、对齐和格式化数据

控件 288

12.1.3 设置打印边界 288

12.2 对细节记录进行分组 289

12.2.1 为实现分组创建子command 289

12.2.2 添加group header和footer

到报表 290

12.3 使用command汇总进行subtotal和

grandtotal 291

12.3.1 添加组subtotal到command层次 291

12.3.2 添加product子汇总到group

footer 292

12.3.3 在层次型flexgrid中显示subtotal

汇总 294

12.3.4 为组汇总格式化mshflexgrid

控件 295

12.3.5 添加报表grand total 298

12.3.6 在page footer插入页号和日期 300

12.4 用行汇总实现crossfooting报表 301

12.4.1 处理crosstab查询结果集中的

null值 302

12.4.2 添加行汇总到datareport 303

12.5 用rptfunction控件取代汇总值 304

12.6 输出datareport到html和text

文件 306

12.7 用vba代码实现打印 307

12.7.1 打印录像带标签 309

12.7.2 打印录像带目录 316

第四部分 数据存取和自动化的高级编程

第13章 从图表中追踪数据 323

13.1 利用chart事件 323

13.1.1 用seriesselected事件选择一个

mshflexgrid行 325

13.1.2 用pointselected事件选择单个

单元 326

13.2 从栈式区域图表显示单序列 327

13.3 在drilldn.vbp项目中增加一个

drilldown饼图 330

13.3.1 选择一个drilldown加载策略 330

13.3.2 在设计阶段设置饼图的属性 331

13.3.3 生成饼图数据 331

13.4 利用mousedown和double_click事件

激活drilldown 333

13.5 用饼图选择追踪路径 335

13.6 用选定的drilldown数据实例化一个

mshflexgrid 338

第14章 通过jet和vba进行调度和设备

控制 343

14.1 浏览visual basic节目单 344

14.1.1 使用键盘浏览功能 346

14.1.2 打开录制和设备控制的窗体 346

14.1.3 指定c波段卫星映射和ird控制 347

14.2 使用webtv的时间表数据库 348

14.3 比较大recordset的dao和ado

的性能 351

14.4 将项目从dao升级到ado 354

14.4.1 打开新的adodb.recordset

对象 356

14.4.2 用find代替复合的findfirst和

findnext方法 357

14.5 利用recordset填充定制的网格 359

14.6 开发visual basic 6pg项目的剩余部分 368

14.6.1 实时操作 368

14.6.2 打印带盒标签和磁带目录 369

第15章 编写本地automation组件和

activexdll 371

15.1 定义automation组件的作用 371

15.2 确定使用进程内组件还是进程

外组件 373

15.2.1 进程内automation组件 373

15.2.2 进程外automation组件 374

15.3 建立一个简单的automation组件 374

15.3.1 将时间段选择组件升级为32位 375

15.3.2 将32位period selection窗体转换

为automation组件 376

15.3.3 调试automation组件 382

15.3.4 period selection组件的错误处理 383

15.4 创建一个复杂的三层automation

组件 384

15.4.1 设计product grouping组件 384

15.4.2 给product grouping类加入一个

show方法 385

第16章 为数据库应用程序创建用户控件 387

16.1 使用datarepeater控件仿制access连

续窗体 387

16.1.1 设计和编辑简单的用户控件 389

16.1.2 在activex控件中增加datarepeater

控件 391

16.1.3 克服recordset更新故障 393

16.2 使用向导生成automation控件 395

16.2.1 设计可重用控件以节省窗体资源 395

16.2.2 使用activex控件接口向导 395

16.2.3 在customer phone list中创建

最终窗体 398

16.2.4 使用属性页向导增加属性页 400

16.3 浏览bindingcollection对象 402

16.3.1 bindingcollection、binding和stddata-

format对象的属性、方法和事件 402

16.3.2 使用databinding属性将binding-

collection加入到用户控件中 404

16.4 调试数据绑定activex控件 405

第五部分 多用户与客户/服务器数据库前端

第17章 多用户jet数据库的网络安全 409

17.1 理解拓扑网络结构与操作 410

17.1.1 依据范围分类的pc网络 410

17.1.2 域、工作组、服务器和工作站 413

17.2 网络硬件和操作协议 414

17.2.1 网络驱动程序接口说明和网络适

配卡驱动程序 414

17.2.2 windows nt中的网络协议栈 415

17.2.3 windows 9x和windows nt中的

tcp/ip 416

17.2.4 tcp/ip上的netbios、windows

socket api以及远程访问 417

17.2.5 hub、变换机、网桥、路由器和

网关 418

17.2.6 数据存储冗余和备份系统 419

17.2.7 本章例子中使用的拓扑结构

和协议 420

17.3 登录到服务器并加入工作组 422

17.4 在网络环境中维护数据库安全 427

17.4.1 网络授权、权限和帐户 427

17.4.2 网络管理员、操作者和用户 429

17.4.3 使用ntfs分区的文件权限 430

17.5 理解jet安全系统 433

17.5.1 分配用户帐户并保证jet数据库

安全 433

17.5.2 使用access 97 user level security

wizard 435

17.5.3 在access早期版本中分配和撤销

组和用户的访问权限 437

17.6 使用visual basic 6和dao 3.5编程

实现jet安全特性 438

17.6.1 使用dao 3.5浏览users和groups

集合 439

17.6.2 使用container和document对象

修改权限 441

17.7 ole db、ado2.0与jet安全 442

第18章 使用客户/服务器数据库 443

18.1 使用microsoft sql server 444

18.1.1 sql server的网络特性 444

18.1.2 连接、线程和对称多处理 445

18.1.3 sql server 7.0 446

18.2 使用access 97向导转换nwind.mdb

至sql server 6.5 448

18.2.1 准备转换 449

18.2.2 使用access 97转换向导 449

18.2.3 检验转换后的sql server 6.5

数据库 453

18.2.4 使用isql-w运行测试查询 455

18.2.5 将jet表导入到sql server 7.0 456

18.2.6 创建一个新的nwind数据库 456

18.2.7 使用数据转换服务导入表 458

18.2.8 使用sql server查询分析器测试

nwind数据库 462

18.2.9 修改导入到sql server 7.0的表 463

18.2.10 修改表属性 463

18.2.11 增加表的索引 465

18.2.12 在order-details表中增加唯一

的混合索引 466

18.3 在数据库图表中指定主键和关系 468

18.4 使用本地sql server提供者 471

18.5 连接oracle 8数据库 476

18.6 使用visual basic 6的可视化

数据工具 476

18.6.1 从visual basic中运行可视化

数据工具 477

18.6.2 创建sql server视图 477

18.7 在vba代码中实现客户/服务器

连接 479

第19章 事务处理和块操作 481

19.1 事务的定义和acid测试 481

19.1.1 explicit与implicit事务 482

19.1.2 连续性与事务孤立性级别 483

19.1.3 理解事务监视器的角色 484

19.2 使用ado 2.x和vba代码处理事务 485

19.2.1 事务指令的结构 485

19.2.2 jet数据库的多表事务代码 487

19.2.3 在事务中使用jet sql 489

19.2.4 用transact-sql实现订单

入口事务 491

19.3 在多个数据库中分布事务 494

19.3.1 两段式提交和分布式事务坐标 495

19.3.2 复制 497

19.3.3 消息与事务 498

19.4 使用块更新和断开连接的

recordsets 499

19.4.1 使用块更新 499

19.4.2 断开连接的recordsets 499

19.4.3 使用绑定控件测试块更新 499

第20章 把access oltp应用程序移

植到visual basic 6 507

20.1 为热线数据入口设计前端 507

20.2 oltp项目的升级过程 509

20.3 步进完成移植过程的第一阶段 510

20.3.1 准备access应用程序 511

20.3.2 创建所需的visual basic对象 511

20.3.3 导入并调试dao代码 513

20.3.4 运行项目vb5oltp或ado2oltp 516

20.4 从dao到ado的变换 519

20.5 ado2oltp项目代码概述 521

第21章 使用transact-sql存储过程 537

21.1 使用存储过程提高性能 538

21.2 存储过程语法 539

21.3 用存储过程替换sql语句 542

21.3.1 存储过程命名约定 542

21.3.2 把ado2oltp.frm的select语句

转换为过程 543

21.3.3 创建存储过程 544

21.3.4 测试select过程 549

21.3.5 用存储过程替换insert、

update和transaction代码 550

21.4 在vba代码中调用存储过程 553

21.4.1 执行只带输入参数的过程 554

21.4.2 使用带参数的dataenvironment.
command对象 555

21.4.3 对参数集合编程 557

21.5 修改ado2oltp应用程序 559

21.5.1 打开连接 559

21.5.2 设置存储过程参数 561

21.5.3 另一个存储过程执行方法 564

21.5.4 用本地存储的recordset对象取代

jet表 565

21.5.5 把command对象传送给子过程 567

21.5.6 增加字段列表以容纳timestamp

字段 569

21.6 使用t-sql调试器调试存储过程 570

21.6.1 设置和测试t-sql调试器 570

21.6.2 在设计模式下调试存储过程 573

21.6.3 在运行模式下进行调试 574

第六部分 数据库、intranet和internet

第22章 把数据库与intranet和internet集

成起来 575

22.1 microsoft的数据神经系统 576

22.2 windows分布式internet应用程序

体系结构 577

22.3 visual basic 6中与internet有关的

新特征 578

22.3.1 数据库访问的远程数据服务 578

22.3.2 internet information server 4.0

应用程序的webclass 579

22.3.3 动态html应用程序 580

22.3.4 使用打包和发行向导进行文件

分布 581

22.3.5 activex文档的下载支持 581

22.3.6 microsoft transaction server 2.0

支持 582

22.4 创建简单的数据使能webclass项目 582

22.4.1 使用frontpage 98创建webclass

模板 582

22.4.2 创建webclass项目并加入

dataenvironment对象 584

22.4.3 加入products.htm 585

22.4.4 显示productlist查询的首记录

的数据 587

22.5 创建一个简单的dhtml项目 590

22.5.1 打开新的dhtml项目并增加

dhtml页 591

22.5.2 显示rsproductlist recordset

的数据 592

22.5.3 给dhproductlist加上recordset导

航按钮 595

第23章 在intranet中使用activex

文档对象 597

23.1 把ado2oltp.vbp项目转化为activex

文档 597

23.1.1 activex文档移植向导 598

23.1.2 修改代码并编译activex dll 600

23.2 打包activex文档对象 601

23.3 多窗体项目的体系结构问题 605

23.3.1 进行窗体转换 605

23.3.2 修改代码 606

23.3.3 处理其余的代码 607

第24章 使用远程数据服务 608

24.1 rds体系结构 608

24.1.1 传统数据库操作与rds的比较 609

24.1.2 rds 2.0自动化组件 610

24.2 rds组件的方法、属性和事件 612

24.3 rds.dataspace对象 614

24.4 rdsserver.datafactory对象 614

24.5 为显式和隐式远程编码 614

24.5.1 使用rds.datacontrol的

隐式远程 614

24.5.2 使用ado 2.0对象和rds.data

control的显式远程 615

24.6 使用vba对rds编程 616

24.6.1 设置iis 4.0和sql server 6.5+ 616

24.6.2 设计dhtmlpage 618

24.6.3 总装页面元素的代码 620

第25章 开发数据使能的internet

应用程序 625

25.1 为运行vblive进行设置 626

25.2 vblive应用程序 627

25.3 vblive的体系结构 631

25.3.1 vba代码的约定和位置 632

25.3.2 webclass代码执行跟踪 633

25.4 从结构资源产生html 637

25.5 直接从模板文件产生html 639

25.6 使用资源文件局部化内容 640

第七部分 企业级开发技术

第26章 microsoft transaction server 2.0 643

26.1 mts在中件市场中的地位 643

26.2 mts在n层客户/服务器体系结构中

的地位 645

26.2.1 三层结构和n层结构 646

26.2.2 层间通信和状态组件 646

26.2.3 n层应用程序中的事务 647

26.3 在windows nt server 4.0下安装

mts 2.0 649

26.3.1 增加mts管理员帐户 649

26.3.2 设置mts system package

的身份 651

26.3.3 测试mts的本地安装 653

26.3.4 设置sample bank工具包和组件

的属性 655

26.4 在远程计算机上安装和运行

bank client 657

26.5 在工作站上安装mts 2.0 659

第27章 创建和发行mts组件 661

27.1 定义mts组件候选 661

27.1.1 面向事务的组件 662

27.1.2 资源孤立组件 662

27.1.3 决策支持组件 663

27.2 设计高效的mts组件 663

27.2.1 objectcontext对象 665

27.2.2 共享属性管理工具 666

27.2.3 objectcontext的securityproperty

对象 667

27.2.4 objectcontrol对象 667

27.2.5 mts组件模板 667

27.3 转换单项客户以使用mts组件 669

27.3.1 第一步:把数据访问操作

移向类 669

27.3.2 第二步:创建和测试nwind
activex dll 678

27.3.3 第三步:创建、安装和测试

northwind工具包 680

27.3.4 第四步:把mts组件移向产品

服务器 686

27.4 给工具包和组件增加安全性 687

第28章 使用olap和mdx分析

多维数据 690

28.1 理解测量和维数 691

28.1.1 oltp与星型模式 692

28.1.2 减少事实表的存储需求 694

28.1.3 利用稀疏矩阵 694

28.2 部门级定义测量和维数 695

28.3 把olap服务程序和引擎分类 696

28.4 把信息传送给客户 699

28.4.1 olap的ole db和简单的

mdx句法 700

28.4.2 mdx示例应用程序 701

28.5 开发ado md对象 703

28.5.1 adomd.catalog对象 703

28.5.2 adomd.cellset对象 708

第八部分 附 录

术语 715


已确认勘误

次印刷

页码 勘误内容 提交人 修订印次

Roger Jennings’ database developer’s guide with Visual Basic 6
    • 名称
    • 类型
    • 大小

    光盘服务联系方式: 020-38250260    客服QQ:4006604884

    意见反馈

    14:15

    关闭

    云图客服:

    尊敬的用户,您好!您有任何提议或者建议都可以在此提出来,我们会谦虚地接受任何意见。

    或者您是想咨询:

    用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问

    Video Player
    ×
    Audio Player
    ×
    pdf Player
    ×
    Current View

    看过该图书的还喜欢

    some pictures

    解忧杂货店

    东野圭吾 (作者), 李盈春 (译者)

    亲爱的云图用户,
    光盘内的文件都可以直接点击浏览哦

    无需下载,在线查阅资料!

    loading icon