#endif
#include <sqltypes.h>
-SWITCH_BEGIN_EXTERN_C struct switch_odbc_handle;
+SWITCH_BEGIN_EXTERN_C
+
+struct switch_odbc_handle;
typedef enum {
SWITCH_ODBC_STATE_INIT,
SWITCH_ODBC_FAIL = -1
} switch_odbc_status_t;
-SWITCH_DECLARE(switch_odbc_handle_t) * switch_odbc_handle_new(char *dsn, char *username, char *password);
+SWITCH_DECLARE(switch_odbc_handle_t *) switch_odbc_handle_new(char *dsn, char *username, char *password);
SWITCH_DECLARE(switch_odbc_status_t) switch_odbc_handle_disconnect(switch_odbc_handle_t *handle);
SWITCH_DECLARE(switch_odbc_status_t) switch_odbc_handle_connect(switch_odbc_handle_t *handle);
SWITCH_DECLARE(void) switch_odbc_handle_destroy(switch_odbc_handle_t **handlep);
char *sql, switch_core_db_callback_func_t callback, void *pdata);
SWITCH_DECLARE(char *) switch_odbc_handle_get_error(switch_odbc_handle_t *handle, SQLHSTMT stmt);
SWITCH_END_EXTERN_C
+
#endif
/* For Emacs:
* Local Variables:
*/
#pragma warning(disable:4100 4200 4204 4706 4819 4132 4510 4512 4610 4996)
+#define SWITCH_HAVE_ODBC 1
+
+#ifdef _MSC_VER
+# pragma comment(lib, "odbc32.lib")
+#endif
+
#pragma include_alias(<libteletone.h>, <../../libs/libteletone/src/libteletone.h>)
#pragma include_alias(<libteletone_generate.h>, <../../libs/libteletone/src/libteletone_generate.h>)
#pragma include_alias(<libteletone_detect.h>, <../../libs/libteletone/src/libteletone_detect.h>)
* switch_odbc.c -- ODBC
*
*/
+#include <switch.h>
#include <switch_odbc.h>
struct switch_odbc_handle {
return SWITCH_ODBC_SUCCESS;
}
- return SWITCH_ODBC_FAIL;
}
static int db_is_up(switch_odbc_handle_t *handle)
SWITCH_DECLARE(switch_odbc_status_t) switch_odbc_handle_exec(switch_odbc_handle_t *handle, char *sql, SQLHSTMT *rstmt)
{
- SQLHSTMT stmt;
+ SQLHSTMT stmt = NULL;
int result;
if (!db_is_up(handle)) {
SWITCH_DECLARE(switch_odbc_status_t) switch_odbc_handle_callback_exec(switch_odbc_handle_t *handle,
char *sql, switch_core_db_callback_func_t callback, void *pdata)
{
- SQLHSTMT stmt;
+ SQLHSTMT stmt = NULL;
SQLSMALLINT c = 0, x = 0;
SQLINTEGER m = 0;
int result;
names[y] = malloc(name_len);
memset(names[y], 0, name_len);
- SQLDescribeCol(stmt, x, (SQLCHAR *) names[y], name_len, &NameLength, &DataType, &ColumnSize, &DecimalDigits, &Nullable);
+ SQLDescribeCol(stmt, x, (SQLCHAR *) names[y], (SQLSMALLINT)name_len, &NameLength, &DataType, &ColumnSize, &DecimalDigits, &Nullable);
ColumnSize++;
vals[y] = malloc(ColumnSize);
RelativePath="..\..\src\switch_log.c"\r
>\r
</File>\r
+ <File\r
+ RelativePath="..\..\src\switch_odbc.c"\r
+ >\r
+ </File>\r
<File\r
RelativePath="..\..\src\switch_regex.c"\r
>\r
>\r
</File>\r
<File\r
- RelativePath="..\..\src\include\switch_core.h"\r
+ RelativePath="..\..\src\include\private\switch_core.h"\r
>\r
</File>\r
<File\r
- RelativePath="..\..\src\include\private\switch_core.h"\r
+ RelativePath="..\..\src\include\switch_core.h"\r
>\r
</File>\r
<File\r
RelativePath="..\..\src\include\switch_module_interfaces.h"\r
>\r
</File>\r
+ <File\r
+ RelativePath="..\..\src\include\switch_odbc.h"\r
+ >\r
+ </File>\r
<File\r
RelativePath="..\..\src\include\switch_platform.h"\r
>\r