已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编号 TN 070101001 TIENON 数据库培训教程 INFORMIX 嵌入式 SQL 编程 2007 年 1 月 V 1 00 Tienon 数据库培训教程 INFORMIX 嵌入式 SQL 编程 天用唯勤 服务至上 3 2 目 录 1 引言 3 1 1 读者对象 3 1 2 内容简介 3 1 3 课程时间 3 1 4 课程目标 3 2 INFORMIX 嵌入式 SQL 语法 3 2 1 概念 4 2 2 ESQL 程序的组成 4 2 2 1 程序首部 4 2 2 2 程序体 6 2 3 ESQL 语法 6 2 3 1 连接数据库 6 2 3 2 关闭连接 7 2 3 3 运行 SQL 命令 7 2 3 4 使用宿主变量 8 2 3 5 游标的使用 10 2 3 6 动态 SQL 11 2 3 7 错误处理 12 2 3 8 事务处理 13 2 3 9 程序实例 13 3 INFORMIX 嵌入式 SQL 编译 15 3 1 1 预编译器 15 3 1 2 makefile 编写方法 15 4 练习 15 Tienon 数据库培训教程 INFORMIX 嵌入式 SQL 编程 天用唯勤 服务至上 3 3 1 引言 Tienon 是一家专业从事金融软件行业 服务于行业客户的专业软件公司 公司产品包括分行特 色业务处理平台 分行渠道接入平台 分行对外连接平台等等 我们所服务的客户都是以数据为基 础的 他们所提供给最终客户的任何一种服务都需要严格的记录 结算 报表等等 因此 我们的 任何软件都离不开数据库 都是搭建在数据库基础之上的业务软件系统 数据库系统对于任何一个有一定软件基础的人来说 都应该不是一个陌生的概念 但是 在实 际运用过程中它确又往往给我们造成相当的麻烦 比如 数据准确性 数据完整性 数据库效率等 等 所以 我们开设这门数据库培训课程 目的是让大家在知道 了解数据库基础知识的前提下 能够更深入的在数据库使用上有所收获 Tienon 所服务的客户中 绝大部分客户使用了 INFORMIX 数据库 因此 我们将以 INFORMIX 为实例来为大家讲解数据库的相关知识 1 1 读者对象 学习过数据库原理的软件开发人员 1 2 内容简介 本期课程涉及两部分内容 INFORMIX 嵌入式 SQL 语法 INFORMIX 嵌入式 SQL 编译 INFORMIX 嵌入式 SQL 语法 了解针对 INFORMIX 数据库的 C C 嵌入 SQL 的语法 INFORMIX 嵌入式 SQL 编译 了解 C C 嵌入 SQL 后的编译 1 3 课程时间 本期课程为期一天 讲解半天 演练半天 1 4 课程目标 本期课程属于 Tienon 数据库培训的第三课 目的是希望参训人员通过本期培训能够更进一步了 解 INFORMIX 数据库编程 2 INFORMIX 嵌入式 SQL 语法 Tienon 数据库培训教程 INFORMIX 嵌入式 SQL 编程 天用唯勤 服务至上 3 4 2 1 概念 SQL 语言是非过程化语言 大部分语句的执行与其前面或后面的语句无关 而一些高级编程语 言都是基于如循环 条件等结构的过程化语言 尽管 SQL 语言非常有力 但它却没有过程化能力 若把 SQL 语言嵌入到过程化的编程语言中 则利用这些结构 程序开发人员就能设计出更加灵活的 应用系统 具有 SQL 语言和高级编程语言的良好特征 它将比单独使用 SQL 或 C 语言具有更强的功 能和灵活性 嵌入 SQL 程序主要由一种普通的编程语言代码组成 在我们这个场合中是 C 并且在其中与 一些特殊标记的段混合 要编译这样的程序 源代码首先经过嵌入的 SQL 预处理器处理 它把源代 码转换成普通的 C 程序 然后这个程序可以用 C 编译工具进行处理 嵌入的 SQL 相比于其它的从 C 代码中处理 SQL 命令的优点有几条 首先 它替你完成了那 些从你的 C 程序的变量中传来传去数值问题 第二 在 C 代码里嵌入 SQL 是定义在 SQL 标准里 的 并且被许多其它的 SQL 数据库支持 如上所述 为嵌入 SQL 接口写的程序通常是带着插入进来的特殊代码的 C 程序 这些特殊代 码用于执行与数据库相关的动作 这些特殊代码通常的形式是下面这样 EXEC SQL 这些语句语法上占据 C 语句的位置 根据具体语句的不同 它们可以出现在全局环境中或者在 一个函数里 嵌入的 SQL 语句遵循普通 SQL 代码的大小写敏感规则 而不是遵循 C 代码的 2 2 ESQL 程序的组成 嵌入的 SQL 语句是指在应用程序中使用的 SQL 语句 该应用程序称作宿主程序 书写该程序的 语言称作宿主语言 嵌入的 SQL 语句与交互式 SQL 语句在语法上没有太大的差别 只是嵌入式 SQL 语句在个别语句上有所扩充 如嵌入式 SQL 中的 SELECT 语句增加了 INTO 子句 以便与宿主语言变 量打交道 此外 嵌入式 SQL 为适合程序设计语言的要求 还增加了许多语句 如游标的定义 打 开和关闭语句等等 ESQL 程序包括两部分 程序首部和程序体 程序首部定义变量 为 ESQL 程序做准备 程序体 包括各种 SQL 语句来操作数据库中的数据 在 ESQL 程序中嵌入的 SQL 语句以 EXEC SQL 作为起始标识 语句的结束以 作为标识 在嵌入 的 SQL 语句可以使用主语言 这时是 C 语言 的程序变量 即主变量 这时主变量名前加冒号 作为 标志 以区别于字段名 2 2 1 程序首部 每一个 ESQL 程序的开始 就是程序的首部 它包括以下两部分 Tienon 数据库培训教程 INFORMIX 嵌入式 SQL 编程 天用唯勤 服务至上 3 5 INCLUDE 语句 说明使用 ESQL 需要包含的头文件 它提供了错误处理 其功能等价于代替 C 语言中的 INCLUDE 语句 每个 ESQL 应用程序必须提供对错误的处理 为了说明 SQL 通讯域 SQLCA 必须在每个预编译 程序中写上 EXEC SQL INCLUDE SQLCA SQLCA 是一结构 每一嵌入的执行性 SQL 语言的执行情况在其执行完成后写入 SQLCA 结构中 的各变量中 根据 SQLCA 中的内容可以获得每一嵌入 SQL 语句执行后的信息 编制程序时就可以做 适当的处理 DECLARE 部分 说明特殊的主变量 这些变量区别于纯 C 语言程序中的变量 ESQL 使用这些变量与程序之间相 互作用 在 DECLARE SECTION 描述部分 定义所有在 SQL 语句中用到的主变量 定义部分是 EXEC SQL BEGIN DECLARE SECTION 开始 和 EXEC SQL END DECLARE SECTION 结束 在这两个语句中 只可以定义 SQL 语句中用到的主变量 每个预编译单元只允许一个 BEGIN END DECLARE SECTION 描述部分 但是一个程序可以包含许多独立的预编译单元 若一个 主变量或指示变量在 ESQL 程序中的 SQL 语句中引用 但它没有在描述部分中定义 则程序在预编 译时就会出现错误信息 在这两个语句中可以定义的变量有六种类型 INT SHORT CHAR FLOAT NUMBER DATE 其中 CHAR 型允许定义二维数组 其它类型只允许 定义一维数组 不允许有指针类型 在此处变量可以赋值 例如 EXEC SQL BEGIN DECLARE SECTION int sno char sname 11 short snameid EXEC SQL END DECLARE SECTION 主变量 就是用在 SQL 语句中的主语言变量 主要用于程序变量和数据库内部交换数据之用 它们的数据类型必须是在主语言中描述部分里定义过的 而且它们的数据类型必须和数据库中已定 义的表中的数据类型相匹配 例如 SELECT 姓名 等级 FROM 供应商 INTO sname status WHERE 供应商号 sno 该语句表示 从供应商表中在供应商号与主变量 sno 一致的地方选择供应商姓名和供应商等级 Tienon 数据库培训教程 INFORMIX 嵌入式 SQL 编程 天用唯勤 服务至上 3 6 把结果传送到主变量 sname status 中 主变量使用规则 1 必须在描述部分明确定义 2 必须使用与其定义相同的大小写格式 3 在 SQL 语句中使用主变量时必须在主变量前写一个冒号 在纯 C 语言语句中则不要 在主变量前写冒号 4 不能是 SQL 命令的保留字 5 在一条语句中只能使用一次 2 2 2 程序体 程序体可以包含许多 SQL 语句 以查询或处理存储在数据库中的数据 在应用程序中所包含的 SQL 语句 可以查询或操纵存储在中的数据 这些语句叫做数据操纵语 言 DML 应用程序体也可以包含 DDL 语句 用来建立或定义数据结构 如表 视图或索引 在用 户程序中写入的任何有效的 SQL 语句都可以被执行 只需要把完整的 SQL 语句按嵌入式的要求写入 C 语言的合适位置即可 嵌入在 C 语言中的 SQL 语句以 EXEC SQL 开始 以 为结束标志 SQL 语 句中可以嵌入主变量 主变量前应有 标志 如下面例子都是嵌入式 SQL 语句 EXEC SQL UPDATE 供应商 SET 姓名 李 红 WHERE 供应商号 S1 把供应商号是 S1 的供应商姓名改为 李 红 EXEC SQL INSERT INTO 供应商 供应商号 姓名 等级 城市 VALUES sno sname status city 根据宿主变量值插入供应商表中 EXEC SQL DELETE FROM 供应商 WHERE 等级 IS NULL 删除供应商等级是空值的供应商 从上面例可以看出 静态的增 删 改语句与交互方式没有太大的差别 但对于查询语句就没 有那么简单 查询语句在后面介绍 2 3 ESQL 语法 总的来说 ESQL 的语法与 SQL 语法类似 只是需要套用 ESQL 的编写规范 前缀 EXEC SQL 以 为结束符 引用变量时在变量前加 等等 当然也有很多与 SQL 语法有一定区别的 比如查 询 游标等 2 3 1 连接数据库 任何一个 EC 程序要操作数据库 都必须首先连接数据库 这与 ODBC ADO 等操作数据库是一 Tienon 数据库培训教程 INFORMIX 嵌入式 SQL 编程 天用唯勤 服务至上 3 7 致的 我们用下面的语句与一个数据库连接 EXEC SQL DATABASE 目标 目标可以用下面的方法声明 数据库名 主机名 端口 这里是一些连接语句的例子 方法一 EXEC SQL DATABASE mydb 方法二 EXEC SQL BEGIN DECLARE SECTION char target 10 mydb EXEC SQL END DECLARE SECTION EXEC SQL DATABASE target 最后的一个形式使用了上面说过的变量引用的方法 在后面的小节里你会看到在 SQL 语句里如 何使用前缀了冒号的 C 变量 2 3 2 关闭连接 任何一个 EC 应用程序在运行结束前都必须将已经连接的数据库关闭 EXEC SQL DISCONNECT CURRENT 断开与当前连接的数据库 2 3 3 运行 SQL 命令 在嵌入的 SQL 应用中可以运行任何 SQL 命令 下面是一些如何使用它们的例子 创建一个表 EXEC SQL CREATE TABLE foo number integer ascii char 16 EXEC SQL CREATE UNIQUE INDEX num1 ON foo number 插入一些行 EXEC SQL INSERT INTO foo number ascii VALUES 9999 doodad 删除一些行 EXEC SQL DELETE FROM foo WHERE number 9999 Tienon 数据库培训教程 INFORMIX 嵌入式 SQL 编程 天用唯勤 服务至上 3 8 单行 select EXEC SQL SELECT foo INTO FooBar FROM table1 WHERE ascii doodad 使用游标的 select EXEC SQL DECLARE foo bar CURSOR FOR SELECT number ascii FROM foo ORDER BY ascii EXEC SQL OPEN foo bar EXEC SQL FETCH foo bar INTO FooBar DooDad EXEC SQL CLOSE foo bar EXEC SQL FREE foo bar 更新 EXEC SQL UPDATE foo SET ascii foobar WHERE number 9999 形如 something 这样的记号是宿主变量 也就是说 它们指向 C 程序里的变量 2 3 4 使用宿主变量 前面的语句有些只使用了固定的数值 并没有提供一个插入用户提供的数值到语句中的方法 也没有提供让程序访问查询返回的数值的方法 这种类型的语句在真正的应用中并不是很有用 本 节详细解释如何在你的 C 程序和嵌入的 SQL 语句之间使用一种被称作宿主变量的机制传递数据 在 C 程序和 SQL 语句之间传递数据在嵌入的 SQL 里特别简单 我们不用把数据贴到语句中 这样必然会有各种复杂事情需要处理 比如正确给数值加引号等等 我们只需要在 SQL 语句里写上 C 变量的名字 前缀一个冒号即可 比如 EXEC SQL INSERT INTO sometable VALUES v1 foo v2 这个语句引用了两个 C 变量 一个叫 v1 另一个叫 v2 并且也使用一个普通的 SQL 字串文 本 这样表明你并不局限于只使用某一种数据 这种在 SQL 语句里插入 C 变量的方式在 SQL 语句里任何需要表达式的地方都可以用 在 SQL 语句里 我们把引用的 C 变量叫做宿主变量 要从程序中向数据库传递数据 比如 查询中的参数 或者从数据库里向程序传回的数据 想 包含这类数据的 C 变量必须在一个特殊的标记段里面声明 这样嵌入的 SQL 预处理器就会明白要 做什么 这个段以下面的代码开头 EXEC SQL BEGIN DECLARE SECTION 以下面的代码结束 EXEC SQL END DECLARE SECTION Tienon 数据库培训教程 INFORMIX 嵌入式 SQL 编程 天用唯勤 服务至上 3 9 在这两行之间 是普通的 C 变量声明 比如 int x char foo 16 bar 16 在程序里你可以有任意多个声明段 这些声明也同时以普通 C 变量的形式回显到输出文件中 因此 我们不必再次声明他们 那 些不准备在 SQL 命令里使用的变量可以像通常一样在这些特殊的段外面声明 结构或者联合的定义也必须在 DECLARE 段中列出 否则 预处理器就无法处理这些类型 因 为它不知道定义 现在你应该能把你的程序生成的数据传递到 SQL 命令里面去了 但是你如何检索一个查询的结 果呢 为了这个目的 嵌入的 SQL 提供了常用命令 SELECT 和 FETCH 的特殊变体 这些命令有 了特殊的 INTO 子句 声明检索出来的数值存储在哪个宿主变量里 下面是一些例子 假设表是这个 CREATE TABLE test1 a int b varchar 50 EXEC SQL BEGIN DECLARE SECTION int v1 CHAR v2 51 EXEC SQL END DECLARE SECTION EXEC SQL SELECT a b INTO v1 v2 FROM test 所以 INTO 子句出现在选择列表和 FROM 子句之间 选择列表和 INTO 后面的列表的元素 也叫目标列表 个数必须相同 下面是使用 FETCH 命令的例子 EXEC SQL BEGIN DECLARE SECTION int v1 CHAR v2 51 EXEC SQL END DECLARE SECTION EXEC SQL DECLARE foo CURSOR FOR SELECT a b FROM test Tienon 数据库培训教程 INFORMIX 嵌入式 SQL 编程 天用唯勤 服务至上 3 10 do EXEC SQL FETCH foo INTO v1 v2 while EXEC SQL CLOSE foo EXEC SQL FREE foo 这里的 INTO 子句出现在所有正常的子句后面 这些方法只能一次检索一行 如果你需要处理可能多于一行的结果集 那么你需要使用游标 2 3 5 游标的使用 我们知道 SQL 语言是一种面向集合的语言 而普通的高级语言则是面向记录的语言 要想使 SQL 语言能与宿主语言通讯 ESQL 提供了游标操作 能把 SQL 的集合操作结果 按单个记录方式取 出 赋于主变量进行进一步的处理 如果查询结果返回多行或不知返回多少行 就可使用带游标的 SELECT 语句 一个游标 CURSOR 是 ESQL 使用的工作区域 使用这个工作区存放着一个查询结果 一个已命名的游标是和一条 SELECT 语句相关联 一个游标必须首先定义 同一个查询相关联 然后用三条可运行的 SQL 语句使用游标 以操纵数据 五条操纵游标的命令如下 DECLRE CURSOR OPEN CURSOR FETCH CLOSE FREE DECLARE CURSOR 语句用来定义一游标 此时游标处于关闭状态 用 OPEN CURSOR 语句打开 游标后 就可用它从相关的查询中取出多于一行的结果 所有满足查询条件的行组成一个集合 叫 做游标活动集 通过 FETCH 取操作 活动集中的每一行可以一个一个的返回 当查询作完后 游标 就可以用 CLOSE 语句关闭以及 FREE 语句释放空间 ESQL 中的 DECLARE CURSOR 语句定义游标 赋给它一个与查询相关的游标名 该语句的格式 为 EXEC SQL DECLARE CURSOR FOR FOR UPDATE Tienon 数据库培训教程 INFORMIX 嵌入式 SQL 编程 天用唯勤 服务至上 3 11 其中 1 SELECT 语句应不含 INTO 子句 2 若无 FOR UPDATE 则无法执行 UPDATE 定位 和 DELETE 定位 语句 定义游标的 DECLARE 语句必须出现在程序中对游标进行操作的所有语句之前 ESQL 不能引用 没有说明的游标 游标的定义范围是整个程序 程序中可包含多个 DECLARE 语句 这些语句定义了 不同的游标 并把游标与不同的查询联系在一起 所以在同一个程序中的两个 DECLARE 语句中不能 说明同一个游标名 ESQL 中 OPEN CURSOR 语句格式如下 EXEC SQL OPEN OPEN 语句决定了满足查询的行的集合 游标处于打开状态 它的活动集就是满足 WHERE 子句 条件的行的集合 这时 游标处在活动集的第一行的前面 ESQL 中的 FETCH CURSOR 语句读出活动集中的行 并把结果送到输出主变量 输出主变量是 在相关的 FETCH 语句中定义的 其格式如下 EXEC SQL FETCH INTO 游标必须先定义 然后再打开 只有当游标处于打开状态时 才执行 FETCH 语句 在第一次运 行 FETCH 时 游标从活动集的第一行前移到当前第一行 使这一行成为当前行 每次运行 FETCH 时游标在活动集中向前移 把选出的结果送到主变量表中指定的输出主变量中 如果游标活动集中是空的 或所有的行已经被取走 就返回一代码 sqlca sqlcode 100 游标只可在活动集中向前移动 无法取到已经用 FETCH 取过的行 要想再取这一行 就必须关 闭游标 再重新打开它 当取完活动集中所有行后 必须关闭游标 以释放与该游标的关的资源 其格式如下 EXEC SQL CLOSE EXEC SQL FREE 2 3 6 动态 SQL 在许多情况下 应用要执行的具体的 SQL 语句在书写应用的时候就已经知道了 不过 在某些 情况下 SQL 语句是在运行时或者由外部的数据提供的 在这种 情况下 我们不能直接在 C 代码 嵌入 SQL 语句 但是有个机制可以允许你调用放在一个字串变量里的任何 SQL 语句 执行任意 SQL 语句最简单的方法是使用 EXECUTE 命令 比如 EXEC SQL BEGIN DECLARE SECTION char stmt 256 CREATE TABLE test1 EXEC SQL END DECLARE SECTION EXEC SQL EXECUTE stmt Tienon 数据库培训教程 INFORMIX 嵌入式 SQL 编程 天用唯勤 服务至上 3 12 你不能用这个办法执行检索数据的语句 也就是说 SELECT 执行任意 SQL 语句的更强大的方法是准备这些语句一次 并且执行这些准备好的语句任意多次 我们也可以准备一个普遍的语句版本 然后通过替换一些参数 执行一个特定的版本 在准备语句 的时候 在你稍后需要替换参数的地方书写一个问号 比如 EXEC SQL BEGIN DECLARE SECTION char stmt 256 INSERT INTO test1 VALUES EXEC SQL END DECLARE SECTION EXEC SQL PREPARE mystmt FROM stmt EXEC SQL EXECUTE mystmt USING 42 foobar EXEC SQL FREE mystmt 如果你在执行的语句返回数值 那么增加一个 INTO 子句 EXEC SQL BEGIN DECLARE SECTION const char stmt 256 SELECT a b c FROM test1 WHERE a int v1 v2 CHAR v3 51 EXEC SQL END DECLARE SECTION EXEC SQL PREPARE mystmt FROM stmt EXEC SQL EXECUTE mystmt INTO v1 v2 v3 USING 37 EXEC SQL FREE mystmt 一个 EXECUTE 命令可以有一个 INTO 子句 一个 USING 子句 也可以两个都有或者两个都 没有 如果你不再需要已准备好的语句 你应该释放它 EXEC SQL FREE name 2 3 7 错误处理 INFORMIX 的错误信息是保存在 SQLCA 结构中的 只要在应用程序前添加了 EXEC SQL INCLUDE SQLCA 就能在后续直接使用 sqlca 这个结构 sqlca sqlcode 表示执行 SQL 语句所返回的错误码 sqlca sqlerrm 表示执行 SQL 语句所返回的错误描述 因此 我们在写 EC 程序时 往往都需要在 SQL 语句后 对 sqlca sqlcode 进行判断 对于 Tienon 数据库培训教程 INFORMIX 嵌入式 SQL 编程 天用唯勤 服务至上 3 13 INFOMRIX 数据库 0 表示成功 100 表示 NOT FOUND 其余表示执行失败 为了查询 sqlca sqlcode 错误码所对应的详细错误描述 可以使用 finderr 命令来查询数据库的 错误帮助 finderr 错误码 一般错误码为负值 查询时可以直接用正值 例如 EXEC SQL INSERT INTO foo VALUES f1 f2 if 0 sqlca sqlcode printf 插入 foo 数据表错 错误信息 s sqlca sqlerrm 2 3 8 事务处理 需要使用事务处理时 可以这样使用 EXEC SQL BEGIN WORK EXEC SQL COMMIT WORK EXEC SQL ROLLBACK WORK 2 3 9 程序实例 例题程序 1 建立一表并向表中插入数据 This is a sample program which include SQL sentence about CREATE INSERT a table EXEC SQL BEGIN DECLARE SECTION char sno 10 sname 10 city 10 int status EXEC SQL END DECLARE SECTION EXEC SQL INCLUDE SQLCA main int i EXEC SQL DATABASE mydb Create a table named S TEST EXEC SQL CREATE TABLE S TEST SNO CHAR 9 SNAME CHAR 20 STATUS INT Tienon 数据库培训教程 INFORMIX 嵌入式 SQL 编程 天用唯勤 服务至上 3 14 CITY CHAR 10 if 0 sqlca sqlcode
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 长白山职业技术学院《投资银行学》2025-2026学年期末试卷
- 扬州大学《广告法》2025-2026学年期末试卷
- 长春建筑学院《基础会计学》2025-2026学年期末试卷
- 马鞍山师范高等专科学校《学前教育史》2025-2026学年期末试卷
- 安徽省淮北市五校2025-2026学年九年级上学期期末语文试题(含答案)
- 2026年苏教版小学四年级语文上册综合强化拓展卷含答案
- 2026年人教版小学四年级数学下册小数点移动引起变化卷含答案
- 深度解析(2026)《GBT 4288-2018家用和类似用途电动洗衣机》
- 深度解析(2026)《GBT 3916-2013纺织品 卷装纱 单根纱线断裂强力和断裂伸长率的测定(CRE法)》
- 深度解析(2026)《GBT 3871.1-2006农业拖拉机 试验规程 第1部分:通 用要求》:新标准下的拖拉机性能评估与未来发展趋势的专家视角全面剖析
- 文物建筑清洁方案设计
- 2025-2030中国高端装备制造业技能人才缺口与培养体系构建
- 2025年长沙市中考语文试卷真题(含答案及解析)
- 温宿县鑫达化工有限责任公司6万吨年甲醛(37%)、9000吨年多聚甲醛、1万吨年甲缩醛项目环境影响报告书
- 无人机集群技术-智能组网与协同 课件全套 第1-8章 绪论- 无人机集群任务分配
- 2025年四川省成都市成华区中考二诊英语试题(原卷版+解析版)
- 中频炉回收拆除施工方案
- 人工智能班会主题班会
- DB11T 2335-2024 既有建筑外门窗改造及验收技术标准
- 男性乳腺增生手术护理
- 期货基础知识期权讲解
评论
0/150
提交评论