各派生类的具体实现,此时只要实现DBAccess的各个虚函数即可。

spacer.gifprivateclass Access : DBAccess
spacer.gifspacer.gif...{
spacer.gif
public Access(DBType type)
spacer.gif                :
base(type)
spacer.gifspacer.gif...{
spacer.gif            }
spacer.gif
spacer.gif
protectedoverridevoid InitConn(string strServer, string strDataBase, string strUser, string strPwd)
spacer.gifspacer.gif...{
spacer.gif
string strConn = "Provider = ";
spacer.gif
switch (strDataBase.Substring(strDataBase.LastIndexOf('.') + 1).ToLower())
spacer.gifspacer.gif...{
spacer.gif
case "mdb":     // 2000, 2003
spacer.gif
                       strConn += "Microsoft.Jet.OleDb.4.0;";
spacer.gif
break;
spacer.gif
spacer.gif
case "accdb":   // 2007
spacer.gif
                       strConn += "Microsoft.ACE.OLEDB.12.0;";
spacer.gif
break;
spacer.gif
spacer.gif
default:
spacer.gif
throw (new Exception("Unknown Access Version."));
spacer.gif
//break;
spacer.gif
               }
spacer.gif                strConn += CON_strDataBase + " = " + strDataBase;
spacer.gif
//strConn += CON_strUser + " = " + strUser;
spacer.gif                //strConn += CON_strPwd + " = " + strPwd;
spacer.gif
base.m_oConn = new OleDbConnection(strConn);
spacer.gif            }
spacer.gif
spacer.gif
protectedoverride DbCommand GetCmd(string strCmd)
spacer.gifspacer.gif...{
spacer.gif
returnnew OleDbCommand(strCmd, (OleDbConnection)base.m_oConn);
spacer.gif            }
spacer.gif
spacer.gif
protectedoverride DbDataAdapter DbAdp
spacer.gifspacer.gif...{
spacer.gifspacer.gif
get...{ returnnew OleDbDataAdapter(); }
spacer.gif            }
spacer.gif
spacer.gif
publicoverride DataTable Tables
spacer.gifspacer.gif...{
spacer.gif
get
spacer.gifspacer.gif...{
spacer.gifspacer.gif
return ((OleDbConnection)base.m_oConn).GetOleDbSchemaTable(OleDbSchemaGuid.Tables, newobject[] ...{ null, null, null, "Table" });
spacer.gif                }
spacer.gif            }
spacer.gif
spacer.gif
publicoverride DataTable GetColumns()
spacer.gifspacer.gif...{
spacer.gif                DataTable dt =
new DataTable();
spacer.gif
foreach (DataRow row inthis.Tables.Rows)
spacer.gifspacer.gif...{
spacer.gif                    dt.Merge(
this.GetColumns(row["TABLE_NAME"].ToString()));
spacer.gif                }
spacer.gif
return dt;
spacer.gif            }
spacer.gif
spacer.gif
publicoverride DataTable GetColumns(string strTable)
spacer.gifspacer.gif...{
spacer.gifspacer.gif
return ((OleDbConnection)base.m_oConn).GetOleDbSchemaTable(OleDbSchemaGuid.Columns, newobject[] ...{ null, null, strTable, null });
spacer.gif            }
spacer.gif        }
spacer.gif
spacer.gif
privateclass SQL : DBAccess
spacer.gifspacer.gif...{
spacer.gif
public SQL(DBType type)
spacer.gif                :
base(type)
spacer.gifspacer.gif...{
spacer.gif            }
spacer.gif
spacer.gif
protectedoverridevoid InitConn(string strServer, string strDataBase, string strUser, string strPwd)
spacer.gifspacer.gif...{
spacer.gif
string strConn = CON_strServer + " = " + strServer + ";";
spacer.gif                strConn += CON_strDataBase + " = " + strDataBase + ";";
spacer.gif                strConn += CON_strUser + " = " + strUser + ";";
spacer.gif                strConn += CON_strPwd + " = " + strPwd + ";";
spacer.gif                strConn += CON_strConnTimeOut;
spacer.gif
base.m_oConn = new SqlConnection(strConn);
spacer.gif            }
spacer.gif
spacer.gif
protectedoverride DbCommand GetCmd(string strCmd)
spacer.gifspacer.gif...{
spacer.gif
returnnew SqlCommand(strCmd, (SqlConnection)base.m_oConn);
spacer.gif            }
spacer.gif
spacer.gif
protectedoverride DbDataAdapter DbAdp
spacer.gifspacer.gif...{
spacer.gifspacer.gif
get...{ returnnew SqlDataAdapter(); }
spacer.gif            }
spacer.gif
spacer.gif
publicoverride DataTable Tables
spacer.gifspacer.gif...{
spacer.gifspacer.gif
get...{ return ((SqlConnection)base.m_oConn).GetSchema("Tables", null); }
spacer.gif            }
spacer.gif
spacer.gif
publicoverride DataTable GetColumns()
spacer.gifspacer.gif...{
spacer.gif
return ((SqlConnection)base.m_oConn).GetSchema("Columns", null);
spacer.gif            }
spacer.gif
spacer.gif
publicoverride DataTable GetColumns(string strTable)
spacer.gifspacer.gif...{
spacer.gifspacer.gif
return ((SqlConnection)base.m_oConn).GetSchema("Columns", newstring[] ...{ null, null, strTable, null });
spacer.gif            }
spacer.gif        }