Structured Query Language
Linguagem de Consulta Estruturada (SQL) é uma linguagem padronizada para definição e manipulação de dados em um banco de dados relacional. De acordo com o modelo relacional de dados, o banco de dados é percebido como um conjunto de tabelas, os relacionamentos são representados por valores em tabelas, e os dados são recuperados especificando uma tabela de resultados que pode ser derivada de uma ou mais tabelas base.
As instruções SQL são executadas por um gerenciador de banco de dados. Uma das funções do gerenciador de banco de dados é transformar a especificação de uma tabela de resultados em uma sequência de operações internas que otimize a recuperação de dados. Essa transformação ocorre quando a instrução SQL é preparada. Essa transformação também é conhecida como ligação.
Todas as instruções SQL executáveis devem ser preparadas antes que elas possam ser executadas. O resultado da preparação é o executável ou forma operacional do enunciado. O método de preparação de uma instrução SQL e a persistência de seu formulário operacional distinguem static SQL de dynamic SQL.
SQL Estático
A forma de origem de uma instrução SQL estática é incorporada em um programa aplicativo escrito em uma linguagem de host, como COBOL, C ou Java™. A instrução é preparada antes de o programa ser executado e a forma operacional da instrução persiste após a execução do programa.
Um programa de origem contendo instruções SQL estáticas deve ser processado por um pré-compilador SQL antes que ele seja compilado. O pré-compilador verifica a sintaxe das instruções SQL, transforma-as em comentários de idioma do host e gera instruções de idioma de host para chamar o gerenciador de banco de dados.
A preparação de um programa de aplicação SQL inclui a pré-compilação, a preparação de suas instruções SQL estáticas e compilação do programa de origem modificada.
SQL dinâmica
Os programas contendo instruções SQL integradas dinâmicas devem ser pré-compilados como aqueles contendo SQL estático, mas ao contrário do SQL estático, as instruções SQL dinâmicas são construídas e preparadas em tempo de execução. O formulário de origem do enunciado é um caractere ou sequência gráfica que é passada para o gerenciador de banco de dados pelo programa usando a instrução SQL PREPARE ou EXECUTE IMEDIATO. Uma instrução preparada usando a instrução PREPARE pode ser referenciada em uma instrução DECLARE CURSOR, DESCRIBE ou EXECUTE. A forma operacional da instrução persiste para a duração da conexão ou até que o último programa SQL deixe a pilha de atendimento.
Instruções SQL integradas em um aplicativo REXX são instruções SQL dinâmicas. Instruções SQL submetidas à instalação SQL interativa e à Interface de Nível de Atendimento (CLI) também são instruções SQL dinâmicas.
SQL dinâmica estendida
Uma instrução SQL dinâmica estendida não é totalmente estática nem totalmente dinâmica. A API QSQPRCED fornece aos usuários uma capacidade SQL dinâmica estendida. Como o SQL dinâmico, instruções podem ser preparadas, descritas e executadas usando esta API. Ao contrário do SQL dinâmico, instruções SQL preparadas em um pacote por esta API persistem até que o pacote ou instrução seja explicitamente eliminado. Para obter mais informações, consulte as informações sobre APIs de banco de dados e arquivos na categoria Programação do IBM i Information Center.
SQL interativa
Uma instalação SQL interativa está associada a cada gerenciador de banco de dados. Essencialmente, toda instalação SQL interativa é um programa de aplicação SQL que lê instruções de uma estação de trabalho, prepara e executa-as dinamicamente, e exibe os resultados para o usuário. Tais instruções SQL são disseram para serem emitidas de forma interativa.
Os recursos interativos do Db2 for i incluem o suporte a Run SQL Scripts do IBM® i Access Client Solutions, o comando STRSQL e o comando STRQM. Para obter mais informações sobre as instalações interativas para SQL, consulte os manuais SQL Programming e Query Manager Use
.
Interface de Nível de Atendimento SQL e Conectividade Open Database
O DB2® Call Level Interface (CLI) é uma interface de programação de aplicativos em que as funções são fornecidas a programas de aplicativos para processar instruções SQL dinâmicas. DB2 CLI permite que usuários de qualquer um dos idiomas ILE acessem as funções SQL diretamente através de chamadas de procedimento para um programa de serviço fornecido pelo Db2 for i. Os programas CLI também podem ser compilados usando um Open Database Connectivity (ODBC) Software Developer's Kit, disponível da Microsoft ou de outros fornecedores, permitindo o acesso a origens de dados ODBC . Ao contrário do uso de SQL integrado, nenhuma pré-compilação é necessária. Os aplicativos desenvolvidos usando esta interface podem ser executados em uma variedade de bancos de dados sem serem compilados em relação a cada um dos bancos de dados. Através da interface, os aplicativos usam chamadas de procedimento no tempo de execução para se conectar a bancos de dados, para emitir instruções SQL e para obter informações de dados e status.
A interface CLI DB2 fornece muitos recursos não disponíveis no SQL integrado. Por exemplo:
- CLI fornece chamadas de função que suportam uma maneira consistente de consultar e recuperar informações do catálogo do sistema de banco de dados em toda a família DB2 de sistemas de gerenciamento de banco de dados. Isso reduz a necessidade de gravar consultas de catálogo específicas do servidor de aplicativos.
- Os procedimentos armazenados chamados de programas de aplicativos escritos usando CLI podem retornar conjuntos de resultados para esses programas.
Para uma descrição completa de todas as funções disponíveis, e sua sintaxe, consulte o manual SQL Call Level Interfaces (ODBC) .
Java DataBase Connectivity (JDBC) e programas SQL integrados para Java (SQLJ)
Db2 for i implementa duas APIs de programação Java baseadas em padrões: Java Database Connectivity (JDBC) e SQL integrado para Java (SQLJ). Ambos podem ser usados para criar aplicativos Java e applets que acessam o DB2.
As chamadas JDBC são traduzidas para chamadas para DB2 CLI através de métodos nativos Java. É possível acessar bancos de dados Db2 for i por meio de dois drivers JDBC : IBM Developer Kit for Java driver ou IBM Toolbox for Java JDBC driver. Para obter informações específicas sobre o driver do IBM Toolbox for Java JDBC , consulte IBM Toolbox for Java.
O SQL static não pode ser usado por JDBC. Os aplicativos SQLJ usam o JDBC como uma base para tais tarefas como conectar a bancos de dados e manipular erros SQL, mas também podem conter instruções SQL estáticas integradas nos arquivos de origem SQLJ. Um arquivo de origem SQLJ tem que ser traduzido com o conversor SQLJ antes que o código-fonte Java resultante possa ser compilado.
Para obter mais informações sobre os aplicativos JDBC e SQLJ, consulte o manual Developer Kit for Java .
OLE DB e ADO (Objeto de dadosActiveX )
IBM i Access for Windows inclui provedores OLE DB, juntamente com o kit de ferramentas do programador para permitir o desenvolvimento de aplicativos cliente/servidor DB2 de forma rápida e fácil a partir do PC cliente Windows. Para obter mais informações, consulte o provedor IBM i Access for Windows OLE DB no IBM i Information Center.
.NET
IBM i Access for Windows inclui um provedor .NET para permitir o desenvolvimento rápido e fácil de aplicativos cliente/servidor DB2 a partir do PC cliente Windows. Para obter mais informações, consulte o IBM i Access for Windows .NET provider no IBM i Information Center.