s_Field = wxT("%02d/%02d/%04d %02d:%02d:%02d.%03d");
}
break;
- case DB_DATA_TYPE_BLOB:
+ case DB_DATA_TYPE_BLOB:
s_Field.Printf(wxT("Unable to format(%d)-SQL(%d)"),dbDataType,sqlDataType); //
- break;
+ break;
default:
s_Field.Printf(wxT("Unknown Format(%d)-SQL(%d)"),dbDataType,sqlDataType); //
break;
else if (retcode != SQL_SUCCESS)
return(DispAllErrors(henv, hdbc));
- if (retcode == SQL_ERROR)
- return(DispAllErrors(henv, hdbc));
+ if (retcode == SQL_ERROR)
+ return(DispAllErrors(henv, hdbc));
*/
- if ((retcode != SQL_SUCCESS) &&
+ if ((retcode != SQL_SUCCESS) &&
(retcode != SQL_SUCCESS_WITH_INFO))
- return(DispAllErrors(henv, hdbc));
+ return(DispAllErrors(henv, hdbc));
/*
If using Intersolv branded ODBC drivers, this is the place where you would substitute
(UCHAR FAR *) uid.c_str(), SQL_NTS,
(UCHAR FAR *) authStr.c_str(), SQL_NTS);
- if (retcode == SQL_ERROR)
- return(DispAllErrors(henv, hdbc));
+ if (retcode == SQL_ERROR)
+ return(DispAllErrors(henv, hdbc));
/*
If using Intersolv branded ODBC drivers, this is the place where you would substitute
SQLSetConnectOption(hdbc, SQL_AUTOCOMMIT, SQL_AUTOCOMMIT_OFF);
SQLSetConnectOption(hdbc, SQL_OPT_TRACE, SQL_OPT_TRACE_OFF);
-// SQLSetConnectOption(hdbc, SQL_TXN_ISOLATION, SQL_TXN_READ_COMMITTED); // No dirty reads
+// SQLSetConnectOption(hdbc, SQL_TXN_ISOLATION, SQL_TXN_READ_COMMITTED); // No dirty reads
// By default, MS Sql Server closes cursors on commit and rollback. The following
// call to SQLSetConnectOption() is needed to force SQL Server to preserve cursors
for (i = 0; i < DB_MAX_ERROR_HISTORY; i++)
wxStrcpy(DBerrorList[i], errorList[i]);
- dbmsType = dbmsUNIDENTIFIED;
+ dbmsType = dbmsUNIDENTIFIED;
dbIsOpen = FALSE;
} // wxDb::Close()
* to avoid undesired unbinding of columns.
*/
{
- UWORD noCols = 0;
- UWORD colNo = 0;
+ UWORD noCols = 0;
+ UWORD colNo = 0;
wxDbColInf *colInf = 0;
RETCODE retcode;
if (!UserID.IsEmpty() &&
Dbms() != dbmsMY_SQL &&
Dbms() != dbmsACCESS &&
+ Dbms() != dbmsINTERBASE &&
Dbms() != dbmsMS_SQL_SERVER)
{
retcode = SQLColumns(hstmt,
Dbms() != dbmsACCESS &&
Dbms() != dbmsMS_SQL_SERVER &&
Dbms() != dbmsDB2 &&
+ Dbms() != dbmsINTERBASE &&
Dbms() != dbmsPERVASIVE_SQL)
{
retcode = SQLTables(hstmt,
*
* PERVASIVE SQL
*
+ * INTERBASE
+ * - Columns that are part of primary keys must be defined as being NOT NULL
+ * when they are created. Some code is added in ::CreateIndex to try to adjust the
+ * column definition if it is not defined correctly, but it is experimental
*/
{
// Should only need to do this once for each new database connection
{
if (!wxStrncmp(dbInf.driverName, wxT("oplodbc"), 7) ||
!wxStrncmp(dbInf.driverName, wxT("OLOD"), 4))
- return ((wxDBMS)(dbmsMS_SQL_SERVER));
- else
- return ((wxDBMS)(dbmsType = dbmsSYBASE_ASE));
+ return ((wxDBMS)(dbmsMS_SQL_SERVER));
+ else
+ return ((wxDBMS)(dbmsType = dbmsSYBASE_ASE));
}
if (!wxStricmp(dbInf.dbmsName,wxT("Microsoft SQL Server")))
return((wxDBMS)(dbmsType = dbmsPOSTGRES));
baseName[9] = 0;
- if (!wxStricmp(dbInf.dbmsName,wxT("Pervasive")))
- return((wxDBMS)(dbmsType = dbmsPERVASIVE_SQL));
+ if (!wxStricmp(dbInf.dbmsName,wxT("Pervasive")))
+ return((wxDBMS)(dbmsType = dbmsPERVASIVE_SQL));
baseName[8] = 0;
if (!wxStricmp(baseName,wxT("Informix")))
return FALSE;
wxString dataTypeName;
- wxString sqlStmt;
+ wxString sqlStmt;
wxString alterSlashModify;
- switch(dataType)
- {
- case DB_DATA_TYPE_VARCHAR :
- dataTypeName = typeInfVarchar.TypeName;
- break;
- case DB_DATA_TYPE_INTEGER :
- dataTypeName = typeInfInteger.TypeName;
- break;
- case DB_DATA_TYPE_FLOAT :
- dataTypeName = typeInfFloat.TypeName;
- break;
- case DB_DATA_TYPE_DATE :
- dataTypeName = typeInfDate.TypeName;
- break;
- case DB_DATA_TYPE_BLOB :
- dataTypeName = typeInfBlob.TypeName;
- break;
- default:
- return FALSE;
- }
-
- // Set the modify or alter syntax depending on the type of database connected to
- switch (Dbms())
- {
- case dbmsORACLE :
- alterSlashModify = "MODIFY";
- break;
- case dbmsMS_SQL_SERVER :
- alterSlashModify = "ALTER COLUMN";
- break;
- case dbmsUNIDENTIFIED :
+ switch(dataType)
+ {
+ case DB_DATA_TYPE_VARCHAR :
+ dataTypeName = typeInfVarchar.TypeName;
+ break;
+ case DB_DATA_TYPE_INTEGER :
+ dataTypeName = typeInfInteger.TypeName;
+ break;
+ case DB_DATA_TYPE_FLOAT :
+ dataTypeName = typeInfFloat.TypeName;
+ break;
+ case DB_DATA_TYPE_DATE :
+ dataTypeName = typeInfDate.TypeName;
+ break;
+ case DB_DATA_TYPE_BLOB :
+ dataTypeName = typeInfBlob.TypeName;
+ break;
+ default:
return FALSE;
- case dbmsSYBASE_ASA :
- case dbmsSYBASE_ASE :
- case dbmsMY_SQL :
- case dbmsPOSTGRES :
- case dbmsACCESS :
- case dbmsDBASE :
- default :
- alterSlashModify = "MODIFY";
- break;
- }
-
- // create the SQL statement
- sqlStmt.Printf(wxT("ALTER TABLE %s %s %s %s"), tableName.c_str(), alterSlashModify.c_str(),
- columnName.c_str(), dataTypeName.c_str());
+ }
+
+ // Set the modify or alter syntax depending on the type of database connected to
+ switch (Dbms())
+ {
+ case dbmsORACLE :
+ alterSlashModify = "MODIFY";
+ break;
+ case dbmsMS_SQL_SERVER :
+ alterSlashModify = "ALTER COLUMN";
+ break;
+ case dbmsUNIDENTIFIED :
+ return FALSE;
+ case dbmsSYBASE_ASA :
+ case dbmsSYBASE_ASE :
+ case dbmsMY_SQL :
+ case dbmsPOSTGRES :
+ case dbmsACCESS :
+ case dbmsDBASE :
+ default :
+ alterSlashModify = "MODIFY";
+ break;
+ }
+
+ // create the SQL statement
+ sqlStmt.Printf(wxT("ALTER TABLE %s %s %s %s"), tableName.c_str(), alterSlashModify.c_str(),
+ columnName.c_str(), dataTypeName.c_str());
// For varchars only, append the size of the column
if (dataType == DB_DATA_TYPE_VARCHAR)
sqlStmt += optionalParam;
}
- return ExecSql(sqlStmt);
+ return ExecSql(sqlStmt);
} // wxDb::ModifyColumn()