Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouArtur Savedra Alterado mais de 10 anos atrás
1
C/ODBC Ambientes de Desenvolvimento Avançados 4º Ano
2
08/10/2001Ambientes de Desenvolvimento Avançados C/OBDC Página 2 Índice O OBDC Arquitectura ODBC Estrutura de uma aplicação API do ODBC
3
08/10/2001Ambientes de Desenvolvimento Avançados C/OBDC Página 3 O ODBC ODBC - Open DataBase Connectivity Permite o acesso a vários DBMS (DataBase Mamagement System) através de uma só API Isolado da aplicação e do DBMS
4
08/10/2001Ambientes de Desenvolvimento Avançados C/OBDC Página 4 Arquitectura ODBC Aplicação –Executa processamento e chama o ODBC Gestor de Drivers –Passa as funções de ODBC para o driver Drivers –Processa as funções do ODBC Origem dos Dados –Dados a que pretendemos aceder
5
08/10/2001Ambientes de Desenvolvimento Avançados C/OBDC Página 5 Origem dos Dados Driver Gestor de Drivers Driver Origem dos Dados Aplicação
6
08/10/2001Ambientes de Desenvolvimento Avançados C/OBDC Página 6 Estrutura de uma Aplicação 1- Estabelecer a Conexão SQLAllocHandle(...Ambiente...) SQLAllocHandle(...Conexão...) SQLConnect 2- Inicializar SQLGetInfo SQLAllocHandle(...Comando...) SQLSetStmtOption
7
08/10/2001Ambientes de Desenvolvimento Avançados C/OBDC Página 7 Estrutura de uma Aplicação (continuação) 3- Executar SQLBindParameter SQLExecute 4a- Se for um SELECT - Recuperar os Resultados SQLNumResultCols SQLDescribeCol SQLBindCol SQLFetch SQLGetData
8
08/10/2001Ambientes de Desenvolvimento Avançados C/OBDC Página 8 4b-Se for um Update, Delete ou Insert SQLRowCount 5- Terminar a Transacção SQLEndTran Estrutura de uma Aplicação (continuação) 6- Desligar SQLFreeHandle(...Comando...) SQLDisconnect SQLFreeHandle(...Conexão...) SQLFreeHandle(...Ambiente...)
9
08/10/2001Ambientes de Desenvolvimento Avançados C/OBDC Página 9 API do ODBC Includes necessários Estabelecer a Conexão e Inicializar Executar um comando Recuperar os resultados Desligar
10
08/10/2001Ambientes de Desenvolvimento Avançados C/OBDC Página 10 API do ODBC Includes necessários #include
11
08/10/2001Ambientes de Desenvolvimento Avançados C/OBDC Página 11 API do ODBC Estabelecer a Conexão e Inicializar SQLRETURN SQLAllocHandle( SQLSMALLINTHandleType, SQLHANDLEInputHandle, SQLHANDLE *OutputHandlePtr); SQLRETURN SQLConnect( SQLHDBC ConnectionHandle, SQLCHAR * ServerName, SQLSMALLINT NameLength1, SQLCHAR * UserName, SQLSMALLINT NameLength2, SQLCHAR * Authentication, SQLSMALLINT NameLength3);
12
08/10/2001Ambientes de Desenvolvimento Avançados C/OBDC Página 12 API do ODBC Estabelecer a Conexão e Inicializar SQLHENV hEnv=SQL_NULL_HANDLE; SQLHDBC hDBC=SQL_NULL_HANDLE; SQLRETURN RetCode=SQL_SUCCESS; // Alocar o Ambiente RetCode=SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv); /* Indicar qual a versão do ODBC que vai ser usada */ RetCode=SQLSetEnvAttr(hEnv, SQL_ATTR_ODBC_VERSION, (void*)SQL_OV_ODBC3, 0); // Alocar a Conexão RetCode=SQLAllocHandle(SQL_HANDLE_DBC, hEnv, &hDBC); // Ligar RetCode=SQLConnect(hDBC, (unsigned char*)DSN_ISEP", SQL_NTS, NULL, SQL_NTS, NULL, SQL_NTS);
13
08/10/2001Ambientes de Desenvolvimento Avançados C/OBDC Página 13 API do ODBC Executar um comando SQLRETURN SQLPrepare( SQLHSTMT StatementHandle, SQLCHAR * StatementText, SQLINTEGER TextLength); SQLRETURN SQLExecute( SQLHSTMT StatementHandle); SQLRETURN SQLExecDirect( SQLHSTMT StatementHandle, SQLCHAR * StatementText, SQLINTEGER TextLength);
14
08/10/2001Ambientes de Desenvolvimento Avançados C/OBDC Página 14 API do ODBC Executar um comando SQLHSTMT hStmtDelete; RetCode=SQLAllocHandle(SQL_HANDLE_STMT, hDBC, &hStmtDelete); // Ligar as variáveis da aplicação aos Parameter Markers RetCode=SQLBindParameter(hStmtDelete, 1, SQL_PARAM_INPUT, SQL_INTEGER, SQL_INTEGER, sizeof(int), 0, &iProduto, sizeof(int), &TamProduto); RetCode=SQLPrepare(hStmtDelete, (unsigned char*)"DELETE FROM PRODUTOS WHERE ProdutoID = ?", SQL_NTS); RetCode=SQLExecute(hStmtDelete); // Fazer o Commit da transacção RetCode=SQLEndTran(SQL_HANDLE_DBC, hDBC, SQL_COMMIT);
15
08/10/2001Ambientes de Desenvolvimento Avançados C/OBDC Página 15 API do ODBC Recuperar os Resultados SQLRETURN SQLBindCol( SQLHSTMT StatementHandle, SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType, SQLPOINTER TargetValuePtr, SQLINTEGER BufferLength, SQLLEN * StrLen_or_Ind); SQLRETURN SQLFetch( SQLHSTMT StatementHandle);
16
08/10/2001Ambientes de Desenvolvimento Avançados C/OBDC Página 16 API do ODBC Recuperar os Resultados // Alocar o comando RetCode=SQLAllocHandle(SQL_HANDLE_STMT, hDBC, &hStmt); // Executar o Comando RetCode=SQLExecDirect(hStmt, (unsigned char*)Select Nome from Pessoas, SQL_NTS); // Ligar as colunas resultado com as variáveis da aplicação RetCode=SQLBindCol(hStmt, 1, SQL_CHAR, cNome, 50, &TamNome); RetCode=SQLFetch(hStmt);
17
08/10/2001Ambientes de Desenvolvimento Avançados C/OBDC Página 17 API do ODBC Desligar SQLRETURN SQLFreeHandle( SQLSMALLINT HandleType, SQLHANDLE Handle); SQLRETURN SQLDisconnect( SQLHDBC ConnectionHandle);
18
08/10/2001Ambientes de Desenvolvimento Avançados C/OBDC Página 18 API do ODBC Desligar // Libertar o handle de Comando SQLFreeHandle(SQL_HANDLE_STMT, hStmt); // Desligar da Base de Dados SQLDisconnect(hDBC); // Libertar o handle de Conexão SQLFreeHandle(SQL_HANDLE_DBC, hDBC); // Libertar o handle de Ambiente SQLFreeHandle(SQL_HANDLE_ENV, hEnv);
19
Fim Nuno Castro Ferreira nacf@dei.isep.ipp.pt
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.