예제 #1
0
            ////////////////////////////////////////////////////////////////////////
            public IDatabaseConnexion GetConnexion(string strIdConnexion)
            {
                if (strIdConnexion == "")
                {
                    strIdConnexion = m_strIdConnexionParDefaut;
                }
                IDatabaseConnexion connexion = (IDatabaseConnexion)m_connexions[strIdConnexion];

                if (connexion == null)
                {
                    if (!CGestionnaireSessions.IsSessionOpenStatic(IdSession))
                    {
                        throw new Exception(I.T("The session has been closed|198"));
                    }
                    CDefinitionConnexionDataSource def = (CDefinitionConnexionDataSource)m_tableDefinitionsConnexions[strIdConnexion];
                    connexion = (IDatabaseConnexion)Activator.CreateInstance(def.TypeConnexion, new object[] { m_nIdSession });
                    m_connexions[strIdConnexion] = connexion;
                    connexion.ConnexionString    = def.ConnexionString;
                    connexion.PrefixeTables      = def.PrefixeTables;

                    //Se met en phase avec les transactions des autres connexions
                    for (int nTrans = 0; nTrans < m_nNbTransactionsOuvertes; nTrans++)
                    {
                        connexion.BeginTrans(m_lastIsolationLevel);
                    }
                }
                return(connexion);
            }
예제 #2
0
        ///////////////////////////////////////////
        public static CResultAErreur Init(CDefinitionConnexionDataSource defConnexionParDefaut)
        {
            if (m_instance != null)
            {
                m_instance.Dispose();
                m_instance = null;
            }
            CResultAErreur result = CResultAErreur.True;

            m_instance = new CSc2iDataServer(defConnexionParDefaut);
            return(result);
        }
예제 #3
0
        ///////////////////////////////////////////
        internal string GetPrefixeForType(Type tpLoader)
        {
            string strIdConnexion = GetIdConnexionForType(tpLoader);

            if (strIdConnexion != null)
            {
                CDefinitionConnexionDataSource def = (CDefinitionConnexionDataSource)m_tableDefinitionsConnexions[strIdConnexion];
                if (def != null)
                {
                    return(def.PrefixeTables);
                }
            }
            return("");
        }
예제 #4
0
 ///////////////////////////////////////////
 public static void AddDefinitionConnexion(CDefinitionConnexionDataSource defConnexionParDefaut)
 {
     m_tableDefinitionsConnexions[defConnexionParDefaut.IdConnexion] = defConnexionParDefaut;
 }
예제 #5
0
 ///////////////////////////////////////////
 private CSc2iDataServer(CDefinitionConnexionDataSource defConnexionParDefaut)
 {
     m_tableDefinitionsConnexions[defConnexionParDefaut.IdConnexion] = defConnexionParDefaut;
     m_strIdConnexionParDefaut = defConnexionParDefaut.IdConnexion;
 }