↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 7.4 / 7.3 / 7.2 / 7.1 / 7.0 / 6.5 / 6.4
历史版本PostgreSQL 7.3 已于 2007 年 11 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

第 3 章 pgtcl - Tcl 绑定库

目录

3.1. 简介
3.2. 把 pgtcl 装载进你的应用程序
3.3. pgtcl 命令参考信息
pg_connect — 打开一个到后端服务器的连接
pg_disconnect — 关闭一个到后端服务器的连接
pg_conndefaults — 获取关于默认连接参数的信息
pg_exec — 向服务器发送一个命令字符串
pg_result — 获取关于查询结果的信息
pg_select — 循环遍历 SELECT 语句的结果
pg_execute — 发送查询并可选地循环遍历结果
pg_listen — 设置或更改异步 NOTIFY 消息的回调
pg_on_connection_loss — 设置或更改意外连接丢失的回调
pg_lo_creat — 创建一个大对象
pg_lo_open — 打开一个大对象
pg_lo_close — 关闭一个大对象
pg_lo_read — 读取一个大对象
pg_lo_write — 写入一个大对象
pg_lo_lseek — 在大对象中定位到某个位置
pg_lo_tell — 返回大对象的当前寻位位置
pg_lo_unlink — 删除一个大对象
pg_lo_import — 从文件导入一个大对象
pg_lo_export — 把大对象导出到文件

3.1. 简介 #

pgtcl 是一个 Tcl 包,供客户端程序与 PostgreSQL 服务器交互。它使 Tcl 脚本 可以使用 libpq 的大部分功能。

本包最初由 Jolly Chen 编写。

表 3.1 概述了 pgtcl 中可用的命令。这些命令将在后续 页面中进一步描述。

表 3.1. pgtcl 命令

命令 描述
pg_connect 打开一个到后端服务器的连接
pg_disconnect 关闭一个连接
pg_conndefaults 获取连接选项及其默认值
pg_exec 向后端发送一个查询
pg_result 操作查询的结果
pg_select 循环遍历 SELECT 语句的结果
pg_execute 发送查询并可选地循环遍历结果
pg_listen 为 NOTIFY 消息建立回调
pg_on_connection_loss 为意外的连接丢失建立回调
pg_lo_creat 创建一个大对象
pg_lo_open 打开一个大对象
pg_lo_close 关闭一个大对象
pg_lo_read 读取一个大对象
pg_lo_write 写入一个大对象
pg_lo_lseek 在大对象中定位到某个位置
pg_lo_tell 返回大对象的当前寻位位置
pg_lo_unlink 删除一个大对象
pg_lo_import 把 Unix 文件导入为大对象
pg_lo_export 把大对象导出到 Unix 文件

pg_lo_* 例程是 PostgreSQL 大对象特性的接口。这些函数 的设计模仿标准 Unix 文件系统接口中的类似文件系统函数。 pg_lo_* 例程应当在 BEGIN/COMMIT 事务块内使用, 因为 pg_lo_open 返回的文件描述符只在当前事务 内有效。pg_lo_import 和 pg_lo_export 必须在 BEGIN/COMMIT 事务块内使用。

例 3.1 展示了一个使用这些例程的小例子。

例 3.1. pgtcl 示例程序

# getDBs :
#   get the names of all the databases at a given host and port number
#   with the defaults being the localhost and port 5432
#   return them in alphabetical order
proc getDBs { {host "localhost"} {port "5432"} } {
    # datnames is the list to be result
    set conn [pg_connect template1 -host $host -port $port]
    set res [pg_exec $conn "SELECT datname FROM pg_database ORDER BY datname"]
    set ntups [pg_result $res -numTuples]
    for {set i 0} {$i < $ntups} {incr i} {
        lappend datnames [pg_result $res -getTuple $i]
    }
    pg_result $res -clear
    pg_disconnect $conn
    return $datnames
}

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。