Esempio n. 1
0
        private static ISQLBuilder LoadObjectFromAssembly(DatabasePlatform dbPlat)
        {
            ISQLBuilder qbf = null;
            string      currentEntryAssemblyPath = System.IO.Path.GetDirectoryName(new Uri(System.Reflection.Assembly.GetEntryAssembly().CodeBase).LocalPath);
            string      assemblyPath             = string.Empty;
            string      assemblyNamespace        = string.Empty;

            switch (dbPlat)
            {
            case DatabasePlatform.MSSQLServer:
            case DatabasePlatform.SQLServerCE35:
            case DatabasePlatform.MSAccess:
            case DatabasePlatform.ODBC:
            case DatabasePlatform.OLEDB:
            case DatabasePlatform.MSOracle:
                assemblyPath      = Path.Combine(currentEntryAssemblyPath, "PFSQLBuilderObjects.dll");
                assemblyNamespace = "PFSQLBuilderObjects.PFQueryBuilder";
                break;

            case DatabasePlatform.SQLServerCE40:
                assemblyPath      = Path.Combine(currentEntryAssemblyPath, "PFSQLServerCE40SQLBuilderObjects.dll");
                assemblyNamespace = "PFSQLServerCE40SQLBuilderObjects.PFQueryBuilder";
                break;

            case DatabasePlatform.OracleNative:
                assemblyPath      = Path.Combine(currentEntryAssemblyPath, "PFOracleSQLBuilderObjects.dll");
                assemblyNamespace = "PFOracleSQLBuilderObjects.PFQueryBuilder";
                break;

            case DatabasePlatform.MySQL:
                assemblyPath      = Path.Combine(currentEntryAssemblyPath, "PFMySQLSQLBuilderObjects.dll");
                assemblyNamespace = "PFMySQLSQLBuilderObjects.PFQueryBuilder";
                break;

            case DatabasePlatform.DB2:
                assemblyPath      = Path.Combine(currentEntryAssemblyPath, "PFDB2SQLBuilderObjects.dll");
                assemblyNamespace = "PFDB2SQLBuilderObjects.PFQueryBuilder";
                break;

            case DatabasePlatform.Informix:
                assemblyPath      = Path.Combine(currentEntryAssemblyPath, "PFInformixSQLBuilderObjects.dll");
                assemblyNamespace = "PFInformixSQLBuilderObjects.PFQueryBuilder";
                break;

            case DatabasePlatform.Sybase:
                assemblyPath      = Path.Combine(currentEntryAssemblyPath, "PFSybaseSQLBuilderObjects.dll");
                assemblyNamespace = "PFSybaseSQLBuilderObjects.PFQueryBuilder";
                break;

            case DatabasePlatform.SQLAnywhere:
                assemblyPath      = Path.Combine(currentEntryAssemblyPath, "PFSQLAnywhereSQLBuilderObjects.dll");
                assemblyNamespace = "PFSQLAnywhereSQLBuilderObjects.PFQueryBuilder";
                break;

            case DatabasePlatform.SQLAnywhereUltraLite:
                assemblyPath      = Path.Combine(currentEntryAssemblyPath, "PFSQLAnywhereULSQLBuilderObjects.dll");
                assemblyNamespace = "PFSQLAnywhereULSQLBuilderObjects.PFQueryBuilder";
                break;

            default:
                break;
            }

            if (assemblyPath.Trim().Length > 0 && assemblyNamespace.Trim().Length > 0)
            {
                qbf = (ISQLBuilder)WindowsAssembly.LoadAndInstantiateType(assemblyPath, assemblyNamespace);
            }

            return(qbf);
        }