29.4. Execução de comandos SQL

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.

SourceForge.net Logo CSS válido!