Partilhar via


SQL incorporado

A primeira técnica para enviar instruções SQL para o SGBD é o SQL embutido. Como o SQL não utiliza variáveis nem instruções de controlo do fluxo, é frequentemente usado como uma sublinguagem de base de dados que pode ser adicionada a um programa escrito numa linguagem de programação convencional, como C ou COBOL. Esta é uma ideia central do SQL embutido: colocar instruções SQL num programa escrito numa linguagem de programação anfitriã. Resumidamente, as seguintes técnicas são usadas para incorporar instruções SQL numa linguagem anfitriã:

  • As instruções SQL embutidas são processadas por um pré-compilador SQL especial. Todas as instruções SQL começam com um introdutor e terminam com um terminador, ambos assinalando a instrução SQL para o pré-compilador. O introdutor e o terminator variam consoante a língua hospedeira. Por exemplo, o introdutor é "EXEC SQL" em C e "&SQL(" em MUMPS, e o terminador é um ponto e vírgula (;) em C e um parêntese à direita em MUMPS.

  • Variáveis do programa de aplicação, chamadas variáveis host, podem ser usadas em instruções SQL embutidas sempre que as constantes são permitidas. Estes podem ser usados na entrada para adaptar uma instrução SQL a uma situação particular e na saída para receber os resultados de uma consulta.

  • Consultas que retornam uma única linha de dados são tratadas com uma instrução singleton SELECT; esta instrução especifica tanto a consulta como as variáveis anfitriãs em que se devem devolver os dados.

  • Consultas que retornam várias linhas de dados são tratadas com cursores. Um cursor acompanha a linha atual dentro de um conjunto de resultados. A instrução DECLARE CURSOR define a consulta, a instrução OPEN inicia o processamento da consulta, a instrução FETCH recupera linhas sucessivas de dados e a instrução CLOSE termina o processamento da consulta.

  • Enquanto um cursor está aberto, as instruções de atualização posicionada e de eliminação posicionada podem ser usadas para atualizar ou eliminar a linha atualmente selecionada pelo cursor.

Esta seção contém os seguintes tópicos.