检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
预备语句 当传递给SQL语句的值在编译时未知或者同一语句将被使用多次时,可以使用预备语句。 使用命令PREPARE准备语句。对于未知的值使用占位符"?": EXEC SQL PREPARE stmt1 FROM "SELECT oid, datname FROM pg_database
关闭数据库连接 数据库使用完成后关闭数据库连接。 使用如下语句关闭连接: EXEC SQL DISCONNECT [connection]; connection可通过如下方法声明: connection-name(连接名) default(缺省) current(当前) all(所有)
java.sql.Statement java.sql.Statement是SQL语句接口。 表1 对java.sql.Statement的支持情况 方法名 返回值类型 支持JDBC 4 addBatch(String sql) void Yes clearBatch() void
SQLAllocConnect 在ODBC 3.x版本中,ODBC 2.x的函数SQLAllocConnect已被SQLAllocHandle代替。有关详细信息请参见SQLAllocHandle。 父主题: ODBC接口参考
执行动态SQL语句 在大多数情况下,应用程序执行的SQL语句在编写应用程序时必须是已知的。但是在某些情况下,SQL语句是在运行时构造好的,或由外部源提供的。这种情况下不能将SQL语句直接嵌入到C语言源代码中,但是动态SQL语句支持通过一个字符串变量调用所提供的SQL语句。 执行没有结果集的语句
时间戳类型 表1列出了ecpg提供的时间戳(timestamp)数据的常用接口: 表1 时间戳类型常用接口 API接口 接口描述 说明 timestamp PGTYPEStimestamp_from_asc(char *str, char **endptr) 从文本解析一个时间戳并放到一个时间戳变量中。
connection.cursor() 功能描述 此方法用于返回新的cursor对象。 原型 cursor(name=None, cursor_factory=None, scrollable=None, withhold=False) 参数 表1 connection.cursor参数
获取驱动包 获取驱动包 根据不同版本的实例,下载不同版本的发布包,如表1所示。 表1 驱动包下载列表 版本 下载地址 V2.0-8.x 驱动包 驱动包校验包 为了防止软件包在传递过程或存储期间被恶意篡改,下载软件包时需下载对应的校验包对软件包进行校验,校验方法如下: 上传软件包和
示例 常用功能示例代码 示例1: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
加载驱动 在创建数据库连接之前,需要先加载数据库驱动程序。 加载驱动有两种方法: 在代码中创建连接之前任意位置隐含装载:Class.forName("org.postgresql.Driver"); 在JVM启动时参数传递:java -Djdbc.drivers=org.postgresql
Psycopg包 准备相关驱动和依赖库。可以从发布包中获取,包名为GaussDB-Kernel_数据库版本号_操作系统版本号_64bit_Python.tar.gz。 解压后有两个文件夹: psycopg2:psycopg2库文件。 lib:lib库文件。 加载驱动。 在使用驱动之前,需要做如下操作:
connection.rollback() 功能描述 此方法回滚当前挂起事务。 执行关闭连接“close()”而不先提交更改“commit()”将导致执行隐式回滚。 原型 connection.rollback() 参数 无。 返回值 无。 示例 请参见示例:常用操作。 父主题:
type ColumnType type ColumnType如下表所示。 方法 描述 返回值 (ci *ColumnType)DatabaseTypeName() 返回列类型的数据库系统名称。返回空字符串表示该驱动类型名字并未被支持。 error (ci *ColumnType)DecimalSize()
管理连接 嵌入式SQL程序中的SQL语句默认是在当前连接(最近打开的那一个)上执行。如果一个应用需要管理多个连接,那么有以下两种方法。 方法1:为每个SQL语句明确选择一个连接: EXEC SQL AT connection-name SELECT ...; 适合于应用程序需以混合顺序使用多个连接的情况。
访问特殊数据类型 ecpg支持numeric、decimal、date、timestamp和interval数据类型。由于这些数据类型的内部结构较为复杂,无法被映射到初级数据类型的宿主变量,因此应用程序通过声明特殊类型的宿主变量以及使用pgtypes库中的函数处理这些特殊类型。p
处理字符串 处理SQL字符串数据类型(例如:varchar、text),有两种方式来声明宿主变量: 方式一:使用char[](一个char字符串),C语言程序中处理字符数据最常见的方式。 EXEC SQL BEGIN DECLARE SECTION; char str[50];
执行动态SQL语句 在大多数情况下,应用程序执行的SQL语句在编写应用程序时必须是已知的。但是在某些情况下,SQL语句是在运行时构造好的,或由外部源提供的。这种情况下不能将SQL语句直接嵌入到C语言源代码中,但是动态SQL语句支持通过一个字符串变量调用所提供的SQL语句。 执行没有结果集的语句
java.sql.Statement java.sql.Statement是SQL语句接口。 表1 对java.sql.Statement的支持情况 方法名 返回值类型 支持JDBC 4 addBatch(String sql) void Yes clearBatch() void
SQLFreeConnect 在ODBC 3.x版本中,ODBC 2.x的函数SQLFreeConnect已被SQLFreeHandle代替。有关详细信息请参见SQLFreeHandle。 父主题: ODBC接口参考
开发步骤 获取驱动jar包并配置JDK1.8 连接数据库 执行SQL语句 处理结果集 关闭数据库连接 父主题: 基于JDBC开发