Documentação do PostgreSQL 8.0.0 | ||||
---|---|---|---|---|
Anterior | Início | Capítulo 29. ECPG - SQL incorporado à linguagem C | Fim | Próxima |
Pode ser executado qualquer comando SQL de dentro de um aplicativo com SQL incorporado. Abaixo estão mostrados alguns exemplos de como se faz isto.
Criação de tabela:
EXEC SQL CREATE TABLE foo (numero integer, ascii char(16)); EXEC SQL CREATE UNIQUE INDEX num1 ON foo(numero); EXEC SQL COMMIT;
Inserção de linhas:
EXEC SQL INSERT INTO foo (numero, ascii) VALUES (9999, 'doodad'); EXEC SQL COMMIT;
Exclusão de linhas:
EXEC SQL DELETE FROM foo WHERE numero = 9999; EXEC SQL COMMIT;
Seleção de uma única linha:
EXEC SQL SELECT numero INTO :numero FROM foo WHERE ascii = 'doodad';
Seleção usando cursores:
EXEC SQL DECLARE foo_bar CURSOR FOR SELECT numero, ascii FROM foo ORDER BY ascii; EXEC SQL OPEN foo_bar; EXEC SQL FETCH foo_bar INTO :numero, :ascii; ... EXEC SQL CLOSE foo_bar; EXEC SQL COMMIT;
Atualizações:
EXEC SQL UPDATE foo SET ascii = 'foobar' WHERE numero = 9999; EXEC SQL COMMIT;
Os símbolos (tokens) com a forma :alguma_coisa são variáveis hospedeiras, ou seja, se referem a variáveis do programa C, e são explicadas na Seção 29.6.
No modo padrão, as declarações são efetivadas apenas quando é executado EXEC SQL COMMIT. A interface de SQL incorporado também suporta a auto-efetivação das transações (semelhante ao comportamento da biblioteca libpq), através da opção de linha de comando -t do ecpg (veja abaixo), ou através da declaração EXEC SQL SET AUTOCOMMIT TO ON. No modo de auto-efetivação todo comando é efetivado automaticamente, a menos que esteja dentro de um bloco de transação explícito. Este modo pode ser desativado explicitamente através da declaração EXEC SQL SET AUTOCOMMIT TO OFF.