| PostgreSQL 8.0.0 中文文件(轉譯自 PostgreSQL 中國 製作的簡體中文版本) | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 29. ecpg - 在 C 裡嵌入 SQL | Fast Forward | Next |
在嵌入的 SQL 應用中可以執行任何 SQL 命令。下面是一些如何使用它們的例子。
建立一個資料表:
EXEC SQL CREATE TABLE foo (number integer, ascii char(16)); EXEC SQL CREATE UNIQUE INDEX num1 ON foo(number); EXEC SQL COMMIT;
插入一些行:
EXEC SQL INSERT INTO foo (number, ascii) VALUES (9999, 'doodad'); EXEC SQL COMMIT;
刪除一些行:
EXEC SQL DELETE FROM foo WHERE number = 9999; EXEC SQL COMMIT;
單行 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 FETCH foo_bar INTO :FooBar, DooDad;
...
EXEC SQL CLOSE foo_bar;
EXEC SQL COMMIT;
更新:
EXEC SQL UPDATE foo
SET ascii = 'foobar'
WHERE number = 9999;
EXEC SQL COMMIT;
形如 :something 這樣的記號是宿主變量,也就是說, 它們指向 C 程序裡的變量。我們在下一節裡解釋這些話題。
在預設模式下,語句只有在發出了 EXEC SQL COMMIT 的時候才提交。嵌入的 SQL 接口也支援交易的自動提交(類似 libpq 的行為), 方法是透過給 ecpg (見下文) 增加命令行選項 -t,或者是透過 EXEC SQL SET AUTOCOMMIT TO ON 語句。 在自動提交模式裡,每條命令都是自動提交的,除非它們包圍在一個明確的交易裡。 這個模式可以用 EXEC SQL SET AUTOCOMMIT TO OFF 明確地關閉。