Thank you for your answer, it really helped and allowed me to advance. Now when I run my MapBasic app all MapInfo crashes more later. I succeed to see the last message in the Message window so I suppose that MapInfo crashes on use of function
SQLOwners32 from ODBC32.DLL. So would you please to give me signatures updated of some functions from ODBC32.DLL
Below is the list of functions that we use :
DECLARE FUNCTION SQLAllocStmt32 LIB "ODBC32.DLL" Alias "SQLAllocStmt" (BYVAL hdbc AS INTEGER, hstmt AS INTEGER) AS SMALLINT
DECLARE FUNCTION SQLBrowseConnect LIB "ODBC32.DLL" Alias "SQLBrowseConnect" (BYVAL hdbc AS INTEGER, BYVAL szConnStrIn AS STRING, BYVAL cbConnStrIn AS INTEGER, szConnStrOut AS STRING, BYVAL cbConnStrOutMax AS INTEGER, pcbConnStrOut AS INTEGER) AS SMALLINT
DECLARE FUNCTION SQLPrepare32 LIB "ODBC32.DLL" Alias "SQLPrepare" (BYVAL hdbc AS INTEGER, BYVAL SQLIn AS STRING, BYVAL SQLInLen AS INTEGER) AS SMALLINT
DECLARE FUNCTION SQLExecute32 LIB "ODBC32.DLL" Alias "SQLExecute" (BYVAL SQLIn AS STRING) AS SMALLINT
DECLARE FUNCTION SQLSetConnectOption LIB "ODBC32.DLL" Alias "SQLSetConnectOption" (BYVAL hdbc AS INTEGER, BYVAL SQLVal1 AS INTEGER, BYVAL SQLVal2 AS INTEGER) AS SMALLINT
DECLARE FUNCTION SQLFetch32 LIB "ODBC32.DLL" Alias "SQLFetch" (BYVAL hstmt AS INTEGER) AS SMALLINT
DECLARE FUNCTION SQLFreeStmt32 LIB "ODBC32.DLL" Alias "SQLFreeStmt" (BYVAL hdbc AS INTEGER, BYVAL Option AS INTEGER) AS SMALLINT
DECLARE FUNCTION SQLGetData32 LIB "ODBC32.DLL" Alias "SQLGetData" (BYVAL hstmt AS INTEGER,BYVAL ColNo AS INTEGER,BYVAL Option AS INTEGER,OutBuf AS STRING,BYVAL OutBufLen AS INTEGER,OutLen AS INTEGER) AS SMALLINT
DECLARE FUNCTION SQLTables32 LIB "ODBC32.DLL" Alias "SQLTables" (BYVAL hdbc AS INTEGER, BYVAL TableQualifier AS INTEGER, BYVAL TableQualifierLen AS INTEGER, TableOwner AS STRING, BYVAL TableOwnerLen AS INTEGER,
TableName AS STRING, BYVAL TableNameLen AS INTEGER, TableType AS STRING, BYVAL TableTypeLen AS INTEGER) AS SMALLINT
DECLARE FUNCTION SQLTablesNoOwner32 LIB "ODBC32.DLL" Alias "SQLTables" (BYVAL hdbc AS INTEGER, BYVAL TableQualifier AS INTEGER, BYVAL TableQualifierLen AS INTEGER, BYVAL TableOwner AS INTEGER, BYVAL TableOwnerLen AS INTEGER,
TableName AS STRING, BYVAL TableNameLen AS INTEGER, TableType AS STRING, BYVAL TableTypeLen AS INTEGER) AS SMALLINT
DECLARE FUNCTION SQLOwners32 LIB "ODBC32.DLL" Alias "SQLTables" (BYVAL hdbc AS INTEGER, TableQualifier AS STRING, BYVAL TableQualifierLen AS INTEGER, TableOwner AS STRING, BYVAL TableOwnerLen AS INTEGER,
TableName AS STRING, BYVAL TableNameLen AS INTEGER, TableType AS STRING, BYVAL TableTypeLen AS INTEGER) AS SMALLINT
DECLARE FUNCTION SQLGetInfo32 LIB "ODBC32.DLL" Alias "SQLGetInfo" ( BYVAL odbchdbc AS INTEGER, BYVAL infoflag AS SMALLINT,
Database AS STRING,
BYVAL len AS SMALLINT,
outlen AS SMALLINT) AS SMALLINT
The last function I changed to
DECLARE FUNCTION SQLGetInfo LIB "ODBC32.DLL" Alias "SQLGetInfo" ( BYVAL odbchdbc AS
largeint, BYVAL infoflag AS SMALLINT,
Database AS STRING,
BYVAL len AS
integer,
outlen AS integer) AS
integer------------------------------
Evgeny Kleiman
Knowledge Community Shared Account
------------------------------
Original Message:
Sent: 01-28-2019 02:23
From: Peter Horsbøll Møller
Subject: Problem with function Server_GetODBCHConn in Windows 10
Hi
I guess the problem is that the ODBC Connection Handle on 64 bit can be larger than an Integer value.
You can try to dim your variable "odbchdbc" as a LargeInt type instead or as an IntPtr type.
Let me check with engineering on the recommend type and also get their feedback on the documentation as it still says Integer for the return type.
------------------------------
Peter Horsbøll Møller
Pitney Bowes
Original Message:
Sent: 01-27-2019 08:38
From: Evgeny Kleiman
Subject: Problem with function Server_GetODBCHConn in Windows 10
I use command
odbchdbc = Server_GetODBCHConn(ConnectionNumber )
where odbchdbc , ConnectionNumber are integers and ConnectionNumber is connection number that I got from
ConnectionNumber = SERVER_CONNECT("ODBC", "DLG=1") (1 for example)
I got error 471: overflow on this command.
All this worked fine in all previous version of MapInfo and even in this version (17) but in Windows 7 64 bit only.
Any help will be appreciated
------------------------------
Evgeny Kleiman
Knowledge Community Shared Account
------------------------------