Commit ebc77c6d authored by Oleksandr Byelkin's avatar Oleksandr Byelkin

Merge remote-tracking branch 'connect/10.2' into 10.2

parents 8acc7fb3 e3b9efb3
...@@ -1422,7 +1422,7 @@ int ODBConn::ExecDirectSQL(char *sql, ODBCCOL *tocols) ...@@ -1422,7 +1422,7 @@ int ODBConn::ExecDirectSQL(char *sql, ODBCCOL *tocols)
PGLOBAL& g = m_G; PGLOBAL& g = m_G;
void *buffer; void *buffer;
bool b; bool b;
UWORD n; UWORD n, k;
SWORD len, tp, ncol = 0; SWORD len, tp, ncol = 0;
ODBCCOL *colp; ODBCCOL *colp;
RETCODE rc; RETCODE rc;
...@@ -1489,15 +1489,16 @@ int ODBConn::ExecDirectSQL(char *sql, ODBCCOL *tocols) ...@@ -1489,15 +1489,16 @@ int ODBConn::ExecDirectSQL(char *sql, ODBCCOL *tocols)
} else { } else {
do { do {
rc = SQLExecDirect(hstmt, (PUCHAR)sql, SQL_NTS); rc = SQLExecDirect(hstmt, (PUCHAR)sql, SQL_NTS);
} while (rc == SQL_STILL_EXECUTING); } while (rc == SQL_STILL_EXECUTING);
if (!Check(rc)) if (!Check(rc))
ThrowDBX(rc, "SQLExecDirect", hstmt); ThrowDBX(rc, "SQLExecDirect", hstmt);
do { do {
rc = SQLNumResultCols(hstmt, &ncol); rc = SQLNumResultCols(hstmt, &ncol);
} while (rc == SQL_STILL_EXECUTING); } while (rc == SQL_STILL_EXECUTING);
k = 0; // used for column number
} // endif Srcdef } // endif Srcdef
for (n = 0, colp = tocols; colp; colp = (PODBCCOL)colp->GetNext()) for (n = 0, colp = tocols; colp; colp = (PODBCCOL)colp->GetNext())
...@@ -1519,18 +1520,23 @@ int ODBConn::ExecDirectSQL(char *sql, ODBCCOL *tocols) ...@@ -1519,18 +1520,23 @@ int ODBConn::ExecDirectSQL(char *sql, ODBCCOL *tocols)
sprintf(m_G->Message, MSG(INV_COLUMN_TYPE), sprintf(m_G->Message, MSG(INV_COLUMN_TYPE),
colp->GetResultType(), SVP(colp->GetName())); colp->GetResultType(), SVP(colp->GetName()));
ThrowDBX(m_G->Message); ThrowDBX(m_G->Message);
} // endif tp } // endif tp
if (m_Tdb->Srcdef)
k = colp->GetIndex();
else
k++;
if (trace(1)) if (trace(1))
htrc("Binding col=%u type=%d buf=%p len=%d slen=%p\n", htrc("Binding col=%u type=%d buf=%p len=%d slen=%p\n",
n, tp, buffer, len, colp->GetStrLen()); k, tp, buffer, len, colp->GetStrLen());
rc = SQLBindCol(hstmt, colp->GetIndex(), tp, buffer, len, colp->GetStrLen()); rc = SQLBindCol(hstmt, k, tp, buffer, len, colp->GetStrLen());
if (!Check(rc)) if (!Check(rc))
ThrowDBX(rc, "SQLBindCol", hstmt); ThrowDBX(rc, "SQLBindCol", hstmt);
} // endif pcol } // endif colp
} catch(DBX *x) { } catch(DBX *x) {
if (trace(1)) if (trace(1))
......
...@@ -142,8 +142,14 @@ bool EXTDEF::DefineAM(PGLOBAL g, LPCSTR am, int poff) ...@@ -142,8 +142,14 @@ bool EXTDEF::DefineAM(PGLOBAL g, LPCSTR am, int poff)
Username = GetStringCatInfo(g, "User", NULL); Username = GetStringCatInfo(g, "User", NULL);
Password = GetStringCatInfo(g, "Password", NULL); Password = GetStringCatInfo(g, "Password", NULL);
if ((Srcdef = GetStringCatInfo(g, "Srcdef", NULL))) // Memory was Boolean, it is now integer
if (!(Memory = GetIntCatInfo("Memory", 0)))
Memory = GetBoolCatInfo("Memory", false) ? 1 : 0;
if ((Srcdef = GetStringCatInfo(g, "Srcdef", NULL))) {
Read_Only = true; Read_Only = true;
if (Memory == 2) Memory = 1;
} // endif Srcdef
Qrystr = GetStringCatInfo(g, "Query_String", "?"); Qrystr = GetStringCatInfo(g, "Query_String", "?");
Sep = GetStringCatInfo(g, "Separator", NULL); Sep = GetStringCatInfo(g, "Separator", NULL);
...@@ -166,10 +172,6 @@ bool EXTDEF::DefineAM(PGLOBAL g, LPCSTR am, int poff) ...@@ -166,10 +172,6 @@ bool EXTDEF::DefineAM(PGLOBAL g, LPCSTR am, int poff)
if (Catfunc == FNC_TABLE) if (Catfunc == FNC_TABLE)
Tabtyp = GetStringCatInfo(g, "Tabtype", NULL); Tabtyp = GetStringCatInfo(g, "Tabtype", NULL);
// Memory was Boolean, it is now integer
if (!(Memory = GetIntCatInfo("Memory", 0)))
Memory = GetBoolCatInfo("Memory", false) ? 1 : 0;
Pseudo = 2; // FILID is Ok but not ROWID Pseudo = 2; // FILID is Ok but not ROWID
return false; return false;
} // end of DefineAM } // end of DefineAM
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment