On 9/24/21 5:31 PM, Henning Follmann wrote:
and I see you do not do any error checking.
This would be a first step to find out where it fails.
I added some code...
You hare fully right, I have corrected, but I have the same result and
no more idea.. :
nous@pcouderc:~/projets/tttt/build$ ./ttest
D 0.0:ln 19:main(): Start : Compile time : Sep 25 2021 09:03:28
0x55cee70a5ed0
nous@pcouderc:~/projets/tttt/build$ cat ../main.cpp
#include <iostream>
#include <string>
#include <stdio.h>
#pragma GCC diagnostic ignored "-Wendif-labels"
#pragma GCC diagnostic ignored "-Wwrite-strings"
#define TDBG clock_t ttdbg=clock();float
ftdbg=((float)ttdbg)/CLOCKS_PER_SEC;
#define DBG_(fmt, args...) {TDBG fprintf(stdout,string(
string("D%5.1f:ln %d:%s(): ")+fmt).c_str(),ftdbg,__LINE__, __func__,
##args);fflush(stdout);}
using namespace std;
extern "C"
{
#include <sql.h>
#include <sqlext.h>
}
int main(int argc, char **argv)
{
DBG_("Start : Compile time : " __DATE__" " __TIME__"\n");
SQLHENV env;
SQLCHAR driver[256];
SQLCHAR attr[256];
SQLSMALLINT driver_ret;
SQLSMALLINT attr_ret;
SQLUSMALLINT direction;
SQLRETURN ret;
ret=SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &env);
if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
cerr << "Failed to allocate handle" << endl;
return -1;
}
ret=SQLSetEnvAttr(env, SQL_ATTR_ODBC_VERSION, (void *)
SQL_OV_ODBC3, 0);
if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
cerr << "Failed SQLSetEnvAttr" << endl;
return -1;
}
cout << env<<endl;
direction = SQL_FETCH_FIRST;
while(1)
{
ret = SQLDrivers(env, direction,
driver, sizeof(driver),
&driver_ret,
attr, sizeof(attr), &attr_ret);
if(ret==SQL_NO_DATA) break;
printf("%s - %s\n", driver, attr);
if (ret == SQL_SUCCESS_WITH_INFO) printf("\tdata
truncation\n");
direction = SQL_FETCH_NEXT;
}
return 0;
}