O driver CLI/ODBC/JDBC pode ser configurado através do Assistente de Configuração de Cliente ou do Gerenciador de Driver ODBC (se estiver instalado no sistema), ou manualmente editando o arquivo db2cli.ini. Para mais detalhes, consulte a publicação DB2 Client Installation Guide ou o CLI Guide and Reference.
O comportamento padrão do driver DB2 CLI/ODBC pode ser modificado por meio da especificação de valores para ambas as palavras-chave, PATCH1 e PATCH2, através do arquivo db2cli.ini ou através da API CLI SQLDriverConnect() ou SQLBrowseConnect().
A palavra-chave PATCH1 é especificada por meio da inclusão de todas as palavras-chave que o usuário quer definir juntas. Por exemplo, se forem especificados patch 1, 2 e 8, o PATCH1 teria o valor 11. Esta é uma descrição do valor de cada palavra-chave e seu efeito no driver:
1 - Faz o driver pesquisar "count(exp)" e substitui-lo por "count(distinct exp)". É necessário porque algumas versões do DB2 suportam a sintaxe "count(exp)" e essa sintaxe é gerada por alguns aplicativos ODBC. Solicitada por aplicativos Microsoft quando o servidor não suportar a sintaxe "count(exp)". 2 - Alguns aplicativos ODBC são interrompidos quando o SQL_NULL_DATA for apresentado na função SQLGetTypeInfo() da coluna LITERAL_PREFIX ou LITERAL_SUFFIX. Isso obriga o driver a apresentar uma cadeia vazia no lugar. Solicitado por Impromptu 2.0. 4 - Obriga o driver a tratar os dados do registro de tempo de entrada como dados de data caso o tempo e a parte de fração do registro de tempo forem zero. Solicitado pelo Microsoft Access. 8 - Obriga o driver a tratar os dados do registro de tempo de entrada como dados de hora se a parte da data do registro de tempo for 1899-12-30. Solicitado pelo Microsoft Access. 16 - Não utilizado. 32 - Obriga o driver a não apresentar informações sobre as colunas SQL_LONGVARCHAR, SQL_LONGVARBINARY e SQL_LONGVARGRAPHIC. Para o aplicativos ele aparece como se campos longos não fossem suportados. Solicitado pelo Lotus 123. 64 - Obriga o driver a terminar como NULL cadeias de saída gráfica. Solicitado pelo Microsoft Access em um ambiente de duplo bytes. 128 - Obriga o driver a deixar a consulta "SELECT Config, nValue FROM MSysConf" ir para o servidor. Atualmente o driver apresenta um erro com o valor SQLSTATE associado S0002 (tabela não encontrada). Solicitado se o usuário tiver criado essa tabela de configuração no banco de dados e quiser que o aplicativo a acesse. 256 - Obriga o driver a apresentar primeiro as colunas da chave primária na chamada SQLStatistics(). Atualmente, o driver apresenta os índices ordenados pelo nome, que é o comportamento padrão do ODBC. 512 - Obriga o driver a apresentar FALSE em SQLGetFunctions() tanto para SQL_API_SQLTABLEPRIVILEGES quanto para SQL_API_SQLCOLUMNPRIVILEGES. 1024 - Obriga o driver a apresentar SQL_SUCCESS em lugar de SQL_NO_DATA_FOUND em SQLExecute() ou SQLExecDirect() se a instrução UPDATE ou DELETE executada não afetar nenhuma linha. Solicitado por aplicativos Visual Basic. 2048 - Não utilizado. 4096 - Obriga o driver a não emitir um COMMIT depois de fechar um cursor quando estiver no modo autocommit. 8192 - Obriga o driver a apresentar um conjunto de resultados extra depois de chamar um procedimento armazenado. Esse conjunto de resultado é uma linha que consiste nos valores de saída do procedimento armazenado. Pode ser acessado por aplicativos Powerbuild. 32768 - Obriga o driver a fazer os aplicativos Microsoft Query trabalharem com sinônimos do DB2 MVS. 65536 - Obriga o driver a inserir manualmente um "G" em frente aos literais dos caracteres que são na verdade gráficos literais. Essa correção deve sempre ser fornecida durante o trabalho em um ambiente de duplo byte. 131072 - Obriga o driver a descrever uma coluna de registro de tempo como uma coluna CHAR(26), quando ela fizer parte de um índice exclusivo. Solicitado por aplicativos Microsoft. 262144 - Obriga o driver a usar a tabela de catálogo de apelidos db2cli.procedures em lugar das tabelas SYSCAT.PROCEDURES e SYSCAT.PROCPARMS. 524288 - Obriga o driver a usar SYSTEM_TABLE_SCHEMA em lugar de TABLE_SCHEMA quando fizer a consulta de uma tabela do sistema em um sistema DB2/400 V3.x. Isso resulta em um melhor desempenho. 1048576 - Obriga o driver a tratar uma cadeia de comprimento zero através de SQLPutData() como SQL_NULL_DATA.
A palavra-chave PATCH2 difere da palavra-chave PATCH1. Nesse caso, várias correções são especificadas com a utilização de vírgulas como separadores. Por exemplo, se forem especificadas as correções 1, 4 e 5, o PATCH2 teria o valor "1,4,5". Esta é uma descrição do valor de cada palavra-chave e seu efeito no driver:
1 - Obriga o driver a converter o nome do procedimento armazenado de uma instrução CALL em maiúsculas. 2 - Não utilizado. 3 - Obriga o driver a converter todos os argumentos das chamadas de esquema em maiúsculas. 4 - Obriga o driver a apresentar a Versão 2.1.2 como conjunto de resultados das chamadas do esquema (ou seja, SQLColumns(), SQLProcedureColumns() e assim por diante), em lugar da Versão 5 como um conjunto de resultados. 5 - Obriga o driver a não otimizar o processamento das colunas VARCHAR de entrada, em que o indicador dos dados e o indicador do comprimento são consecutivos na memória. 6 - Obriga o driver a apresentar a mensagem de que os cursores deslocáveis não são suportados. É solicitado pelos programas do Visual Basic se o cliente DB2 for a Versão 5 e o servidor for o DB2 UDB Versão 5. 7 - Obriga o driver a mapear todos os tipos de dados da coluna GRAPHIC para o tipo de dados da coluna CHAR. Solicitado em um ambiente de duplo byte. 8 - Obriga o driver a ignorar argumentos de pesquisa do catálogo em chamadas do esquema. 9 - Não efetua o commit em Early Close de um cursor 10 - Não Utilizado 11 - Relata que o nome do catálogo é suportado, (procedimentos armazenados VB) 12 - Remove as aspas duplas dos argumentos da chamada do esquema, (Visual Interdev) 13 - Não anexa as palavras-chave do db2cli.ini na cadeia de conexão de saída 14 - Ignora o nome do esquema em SQLProcedures() e SQLProcedureColumns() 15 - Usa sempre um ponto como separador decimal na saída do caractere 16 - Obriga a apresentação das informações de descrição de cada abertura 17 - Não apresenta os nomes de colunas na descrição 18 - Tenta substituir literais por marcadores de parâmetros 19 - Atualmente, o DB2 MVS V4.1 não suporta a sintaxe ODBC em que os parênteses são permitidos na cláusula ON em uma cláusula de join externa. Ao ligar este PATCH2 causará ao driver do IBM DB2 ODBC a retirada dos parênteses quando a cláusula join externa está em uma seqüência de saída ODBC. Este PATCH2 só deve ser utilizado em relação ao DB2 MVS 4.1. 20 - Atualmente, o DB2 em MVS não suporta o predicado BETWEEN com marcadores de parâmetros como ambos operandos (expressão ? BETWEEN ?). Ao ligar esta correção fará o Driver IBM ODBC gravar novamente o predicado como (expression >= ? and expression <= ?). 21 - Defina todos os parâmetros somente OUTPUT dos procedimentos armazenados como SQL_NULL_DATA 22 - Este PATCH2 causa ao driver IBM ODBC reportar join OUTER como não suportado. Destinado ao aplicativo que gera SELECT DISTINCT col1 ou ORDER BY col1 ao utilizar a instrução de join externa em que col1 é maior do que 254 caracteres e faz o DB2 UDB apresentar um erro (já que o DB2 UDB não suporta uma coluna maior do que 254 bytes nessa utilização 23 - Não otimize a entrada dos parâmetros bound com cbColDef=0 24 - Solução de acesso para o mapeamento de valores de Tempo como Caracteres 25 - Solução de acesso para colunas decimais - remove zeros iniciais em representações de carac 26 - Não retorna o sqlcode 464 para o aplicativo - indica o retorno de conjunto de resultados 27 - Força o SQLTables a utilizar o valor palavra-chave TABLETYPE, mesmo que o aplicativo especifica um valor válido 28 - Descreve colunas reais como colunas duplas 29 - ADO soluções para colunas decimais - remove zeros iniciais para valores x, em que 1 > x > -1 (Apenas necessário para algumas versões MDAC) 30 - Desativa a otimização de cache do Procedimento Armazenado 31 - Relata estatísticas para aliases na chamada SQLStatistics 32 - Sobrepõe o processamento do sqlcode -727 código de motivo 4 33 - Retorna a versão ISO do registro de tempo quando convertido para caractere (como oposto à versão ODBC) 34 - Relata colunas CHAR FOR BIT DATA como CHAR 35 - Relata um TABLENAME inválido quando o SQL_DESC_BASE_TABLE_NAME é requisitado - otimização apenas-leitura ADO 36 - Reservado 37 - Reservado