1/* 2 * itrace.c 3 * 4 * $Id: itrace.c 2613 1999-06-01 15:32:12Z VZ $ 5 * 6 * Trace functions 7 * 8 * The iODBC driver manager. 9 * 10 * Copyright (C) 1995 by Ke Jin <kejin@empress.com> 11 * 12 * This library is free software; you can redistribute it and/or 13 * modify it under the terms of the GNU Library General Public 14 * License as published by the Free Software Foundation; either 15 * version 2 of the License, or (at your option) any later version. 16 * 17 * This library is distributed in the hope that it will be useful, 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 20 * Library General Public License for more details. 21 * 22 * You should have received a copy of the GNU Library General Public 23 * License along with this library; if not, write to the Free 24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 25 */ 26 27#include "config.h" 28 29#include "isql.h" 30#include "isqlext.h" 31 32#include "dlproc.h" 33 34#include "itrace.h" 35 36#include "herr.h" 37#include "henv.h" 38#include "henv.ci" 39 40#include <stdio.h> 41 42static int 43printreturn (void FAR * istm, int ret) 44{ 45 FILE FAR *stm = (FILE FAR *) istm; 46 char FAR *ptr = "Invalid return value"; 47 48 switch (ret) 49 { 50 case SQL_SUCCESS: 51 ptr = "SQL_SUCCESS"; 52 break; 53 54 case SQL_SUCCESS_WITH_INFO: 55 ptr = "SQL_SUCCESS_WITH_INFO"; 56 break; 57 58 case SQL_NO_DATA_FOUND: 59 ptr = "SQL_NO_DATA_FOUND"; 60 break; 61 62 case SQL_NEED_DATA: 63 ptr = "SQL_NEED_DATA"; 64 break; 65 66 case SQL_INVALID_HANDLE: 67 ptr = "SQL_INVALID_HANDLE"; 68 break; 69 70 case SQL_ERROR: 71 ptr = "SQL_ERROR"; 72 break; 73 74 case SQL_STILL_EXECUTING: 75 ptr = "SQL_STILL_EXECUTING"; 76 break; 77 78 default: 79 break; 80 } 81 82 fprintf (stm, "%s\n", ptr); 83 fflush (stm); 84 85 return 0; 86} 87 88 89HPROC 90_iodbcdm_gettrproc (void FAR * istm, int procid, int type) 91{ 92 FILE FAR *stm = (FILE FAR *) istm; 93 94 if (type == TRACE_TYPE_DM2DRV) 95 { 96 int i, j = 0; 97 98 for (i = 0; j != en_NullProc; i++) 99 { 100 j = odbcapi_symtab[i].en_idx; 101 102 if (j == procid) 103 { 104 fprintf (stm, "\n%s ( ... )\n", odbcapi_symtab[i].symbol); 105 106 fflush (stm); 107 } 108 } 109 } 110 111 if (type == TRACE_TYPE_RETURN) 112 { 113 return (HPROC) printreturn; 114 } 115 116 return SQL_NULL_HPROC; 117} 118