]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/db.cpp
code
[wxWidgets.git] / src / common / db.cpp
index 86dd614ad9c3bca6f9127becf48799e37df2595c..08c40f003d89d0cee43ba2bd817c031cd8881a49 100644 (file)
@@ -562,7 +562,8 @@ const wxChar *wxDb::convertUserID(const wxChar *userID, wxString &UserID)
         UserID.Empty();
 
     // dBase does not use user names, and some drivers fail if you try to pass one
-    if (Dbms() == dbmsDBASE)
+    if ( Dbms() == dbmsDBASE
+         || Dbms() == dbmsXBASE_SEQUITER )
         UserID.Empty();
 
     // Oracle user names may only be in uppercase, so force
@@ -722,13 +723,17 @@ bool wxDb::Open(const wxString &Dsn, const wxString &Uid, const wxString &AuthSt
     {
         if (!getDataTypeInfo(SQL_DATE,typeInfDate))
         {
-            if (!getDataTypeInfo(SQL_DATETIME,typeInfDate))
+#ifdef SQL_DATETIME
+            if (getDataTypeInfo(SQL_DATETIME,typeInfDate))
+            {
+                typeInfDate.FsqlType = SQL_TIME;
+            }
+            else
+#endif // SQL_DATETIME defined
             {
                 if (failOnDataTypeUnsupported)
                     return(FALSE);
             }
-            else
-                typeInfDate.FsqlType = SQL_TIME;
         }
         else
             typeInfDate.FsqlType = SQL_DATE;
@@ -3494,6 +3499,9 @@ wxDBMS wxDb::Dbms(void)
     if (!wxStricmp(baseName,wxT("DBASE")))
         return((wxDBMS)(dbmsType = dbmsDBASE));
 
+    if (!wxStricmp(baseName,wxT("xBase")))
+        return((wxDBMS)(dbmsType = dbmsXBASE_SEQUITER));
+    
     if (!wxStricmp(baseName,wxT("MySQL")))
         return((wxDBMS)(dbmsType = dbmsMY_SQL));
 
@@ -3561,14 +3569,23 @@ bool wxDb::ModifyColumn(const wxString &tableName, const wxString &columnName,
         case dbmsPOSTGRES :
         case dbmsACCESS :
         case dbmsDBASE :
+        case dbmsXBASE_SEQUITER :
         default :
             alterSlashModify = "MODIFY";
             break;
     }
 
     // create the SQL statement
-    sqlStmt.Printf(wxT("ALTER TABLE \"%s\" \"%s\" \"%s\" %s"), tableName.c_str(), alterSlashModify.c_str(),
+    if ( Dbms() == dbmsMY_SQL )
+    {
+        sqlStmt.Printf(wxT("ALTER TABLE %s %s %s %s"), tableName.c_str(), alterSlashModify.c_str(),
+              columnName.c_str(), dataTypeName.c_str());
+    }
+    else
+    {
+        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 &&
@@ -3741,7 +3758,7 @@ int WXDLLEXPORT wxDbConnectionsInUse(void)
 
 /********** wxDbLogExtendedErrorMsg() **********/
 // DEBUG ONLY function
-const wxChar WXDLLEXPORT *wxDbLogExtendedErrorMsg(const wxChar *userText,
+const wxChar* WXDLLEXPORT wxDbLogExtendedErrorMsg(const wxChar *userText,
                                                   wxDb *pDb,
                                                   const wxChar *ErrFile,
                                                   int ErrLine)