/// <summary> /// Carrega os dados da tabela filha tem como base os relacionamento entre ela e a atual model, que s�o /// identificados pelo atributos <see cref="PersistenceForeignKeyAttribute"/>. /// </summary> /// <typeparam name="ClassChild">Tipo da classe que representa a tabela filha.</typeparam> /// <param name="parentObj">Objeto contendo as informa��es para fazer o relacionamento.</param> /// <param name="groupOfRelationship">Nome do grupo de relacionamento.</param> /// <param name="sortExpression">Informa��o sobre o propriedade a ser ordenada.</param> /// <param name="paging">Informa��es sobre a pagina��o do resultado.</param> /// <returns>Lista tipada do tipo da classe que representa a tabela filha.</returns> public GDAList <ClassChild> LoadDataForeignKeyParentToChild <ClassChild>(Model parentObj, string groupOfRelationship, InfoSortExpression sortExpression, InfoPaging paging) where ClassChild : new() { IBaseDAO <ClassChild> dao = GDAOperations.GetDAO <ClassChild>(); List <GDAParameter> parameters; string sql; MakeSqlForeignKeyParentToChild <ClassChild>(parentObj, groupOfRelationship, dao, out sql, out parameters, UserProvider); MethodInfo mi = dao.GetType().GetMethod("GetSqlData", GDA.Common.Helper.ReflectionFlags.AllCriteria); object ret = null; try { ret = mi.Invoke(dao, new object[] { sql, parameters, sortExpression, paging }); } catch (Exception ex) { throw new GDAException(ex.InnerException); } return((GDAList <ClassChild>)ret); }
/// <summary> /// Carrega os dados da tabela filha tem como base os relacionamento entre ela e a atual model, que s�o /// identificados pelo atributos <see cref="PersistenceForeignKeyAttribute"/>. /// </summary> /// <typeparam name="ClassChild">Tipo da classe que representa a tabela filha.</typeparam> /// <param name="parentObj">Objeto contendo as informa��es para fazer o relacionamento.</param> /// <param name="groupOfRelationship">Nome do grupo de relacionamento.</param> /// <param name="paging">Informa��es sobre a pagina��o do resultado.</param> /// <returns>Lista tipada do tipo da classe que representa a tabela filha.</returns> public GDAList <ClassChild> LoadDataForeignKeyParentToChild <ClassChild>(Model parentObj, string groupOfRelationship, InfoPaging paging) where ClassChild : new() { return(LoadDataForeignKeyParentToChild <ClassChild>(parentObj, groupOfRelationship, null, paging)); }
/// <summary> /// Carrega os dados com o retorno da query. /// </summary> /// <param name="sqlQuery">Query.</param> /// <param name="sortExpression">Express�o de ordena��o do comando sql.</param> /// <param name="infoPaging">Informa��es para pagina��o do resultado da query.</param> /// <param name="parameters">Parametros da query.</param> /// <returns>Lista com os dados do retorno da query.</returns> /// <exception cref="GDAColumnNotFoundException"></exception> /// <exception cref="GDAException"></exception> public GDACursor <Model> LoadDataWithSortExpression(GDASession session, string sqlQuery, System.Data.CommandType commandType, InfoSortExpression sortExpression, InfoPaging infoPaging, GDAParameter[] parameters) { return(LoadDataWithSortExpression(session, sqlQuery, null, commandType, sortExpression, infoPaging, parameters)); }
/// <summary> /// Carrega os dados com o retorno da query. /// </summary> /// <param name="session">Sess�o que ser� usado para executar a consulta.</param> /// <param name="sqlQuery">Query.</param> /// <param name="selectProperties">Nomes das propriedades que ser�o recuperadas na consulta separados por v�rgula.</param> /// <param name="sortExpression">Express�o de ordena��o do comando sql.</param> /// <param name="infoPaging">Informa��es para pagina��o do resultado da query.</param> /// <param name="parameters">Parametros da query.</param> /// <returns>Lista com os dados do retorno da query.</returns> /// <exception cref="GDAColumnNotFoundException"></exception> /// <exception cref="GDAException"></exception> public GDACursor <Model> LoadDataWithSortExpression(GDASession session, string sqlQuery, string selectProperties, System.Data.CommandType commandType, InfoSortExpression sortExpression, InfoPaging infoPaging, GDAParameter[] parameters) { return(new GDACursor <Model>(GetCursorParameters(session, sqlQuery, selectProperties, commandType, sortExpression, infoPaging, parameters))); }
public GDAList <ClassChild> LoadDataForeignKeyParentToChild <ClassChild>(Model parentObj, string groupOfRelationship, InfoSortExpression sortProperty, InfoPaging paging) where ClassChild : new() { return(CurrentPersistenceObject.LoadDataForeignKeyParentToChild <ClassChild>(parentObj, groupOfRelationship, sortProperty, paging)); }
/// <summary> /// Carrega os dados com o retorno da query. /// </summary> /// <param name="sqlQuery">Query.</param> /// <param name="sortExpression">Express�o de ordena��o do comando sql.</param> /// <param name="infoPaging">Informa��es para pagina��o do resultado da query.</param> /// <param name="parameters">Parametros da query.</param> /// <returns>Lista com os dados do retorno da query.</returns> /// <exception cref="GDAColumnNotFoundException"></exception> /// <exception cref="GDAException"></exception> public GDACursor <Model> LoadDataWithSortExpression(string sqlQuery, InfoSortExpression sortExpression, InfoPaging infoPaging, GDAParameter[] parameters) { return(LoadDataWithSortExpression(sqlQuery, CommandType.Text, sortExpression, infoPaging, parameters)); }
/// <summary> /// Carrega as lista itens da tabela representada pelo tipo da classe /// submetida relacionados com a atual model. Será informado também o grupo /// no qual o relacionamento será carregado. Utiliza a estrura 1 para N. /// </summary> /// <typeparam name="ClassRelated">Tipo da classe que representa a tabela do relacionamento.</typeparam> /// <param name="paging">Informações sobre a paginação do resultado.</param> /// <returns>Lista tipada do tipo da classe que representa a tabela do relacionamento.</returns> public GDAList <ClassRelated> LoadRelationship1toN <ClassRelated>(InfoPaging paging) where ClassRelated : new() { return(GDAOperations.LoadRelationship1toN <ClassRelated>(this, null, null, paging)); }
internal GDAList <Model> GetSqlData(string sql, List <GDAParameter> parameters, InfoSortExpression sortExpression, InfoPaging paging) { return(CurrentPersistenceObject.LoadDataWithSortExpression(sql, sortExpression, paging, parameters.ToArray())); }
/// <summary> /// Carrega as lista itens da tabela representada pelo tipo da classe /// submetida relacionados com a atual model. Ser� informado tamb�m o grupo /// no qual o relacionamento ser� carregado. Utiliza a estrura 1 para N. /// </summary> /// <typeparam name="ClassRelated">Tipo da classe que representa a tabela do relacionamento.</typeparam> /// <param name="model">Model na qual o itens est�o relacionados.</param> /// <param name="paging">Informa��es sobre a pagina��o do resultado.</param> /// <returns>Lista tipada do tipo da classe que representa a tabela do relacionamento.</returns> public static GDAList <ClassRelated> LoadRelationship1toN <ClassRelated>(object model, InfoPaging paging) where ClassRelated : new() { return(LoadRelationship1toN <ClassRelated>(model, null, null, paging)); }
/// <summary> /// Carrega as lista itens da tabela representada pelo tipo da classe /// submetida relacionados com a atual model. Será informado também o grupo /// no qual o relacionamento será carregado. Utiliza a estrura 1 para N. /// </summary> /// <typeparam name="ClassRelated">Tipo da classe que representa a tabela do relacionamento.</typeparam> /// <param name="sortProperty">Informação sobre o propriedade a ser ordenada.</param> /// <param name="paging">Informações sobre a paginação do resultado.</param> /// <returns>Lista tipada do tipo da classe que representa a tabela do relacionamento.</returns> public GDAList <ClassRelated> LoadRelationship1toN <ClassRelated>(InfoSortExpression sortProperty, InfoPaging paging) where ClassRelated : new() { return(GDAOperations.LoadRelationship1toN <ClassRelated>(this, null, sortProperty, paging)); }
/// <summary> /// Carrega as lista itens da tabela representada pelo tipo da classe /// submetida relacionados com a atual model. Ser� informado tamb�m o grupo /// no qual o relacionamento ser� carregado. Utiliza a estrura 1 para N. /// </summary> /// <typeparam name="ClassRelated">Tipo da classe que representa a tabela do relacionamento.</typeparam> /// <param name="model">Model na qual o itens est�o relacionados.</param> /// <param name="sortProperty">Informa��o sobre o propriedade a ser ordenada.</param> /// <param name="paging">Informa��es sobre a pagina��o do resultado.</param> /// <returns>Lista tipada do tipo da classe que representa a tabela do relacionamento.</returns> public static GDAList <ClassRelated> LoadRelationship1toN <ClassRelated>(object model, InfoSortExpression sortProperty, InfoPaging paging) where ClassRelated : new() { return(LoadRelationship1toN <ClassRelated>(model, null, sortProperty, paging)); }
/// <summary> /// Carrega as lista itens da tabela representada pelo tipo da classe /// submetida relacionados com a atual model. Ser� informado tamb�m o grupo /// no qual o relacionamento ser� carregado. Utiliza a estrura 1 para N. /// </summary> /// <typeparam name="ClassRelated">Tipo da classe que representa a tabela do relacionamento.</typeparam> /// <param name="model">Model na qual o itens est�o relacionados.</param> /// <param name="group">Nome do grupo de relacionamento.</param> /// <param name="sortProperty">Informa��o sobre o propriedade a ser ordenada.</param> /// <param name="paging">Informa��es sobre a pagina��o do resultado.</param> /// <returns>Lista tipada do tipo da classe que representa a tabela do relacionamento.</returns> public static GDAList <ClassRelated> LoadRelationship1toN <ClassRelated>(object model, string group, InfoSortExpression sortProperty, InfoPaging paging) where ClassRelated : new() { object dao = GetDAO(model); MethodInfo mi = dao.GetType().GetMethod("LoadDataForeignKeyParentToChild", new Type[] { model.GetType(), typeof(string), typeof(InfoSortExpression), typeof(InfoPaging) }); if (mi == null) { throw new GDAException("DAO of model not suport LoadDataForeignKeyParentToChild."); } else { mi = mi.MakeGenericMethod(new Type[] { typeof(ClassRelated) }); } try { return((GDAList <ClassRelated>)mi.Invoke(dao, new object[] { model, group, sortProperty, paging })); } catch (Exception ex) { throw ex.InnerException; } }
/// <summary> /// Executa a consulta e recupera o dados do resultado. /// </summary> /// <param name="session">Sessão onde será executada a consulta.</param> /// <param name="commandType">Tipo de comando.</param> /// <param name="commandTimeout"></param> /// <param name="paging"></param> /// <param name="sqlQuery">Consulta.</param> /// <param name="parameters">Parametros para a consulta.</param> /// <returns></returns> public GDADataRecordCursor LoadResult(GDASession session, CommandType commandType, int commandTimeout, string sqlQuery, InfoPaging paging, params GDAParameter[] parameters) { return(new GDADataRecordCursor(GetLoadResultCursorParameters(session, commandType, commandTimeout, sqlQuery, paging, parameters))); }
/// <summary> /// Prepara o comando que será executado. /// </summary> /// <param name="session"></param> /// <param name="command">Instancia do comando que será preparada.</param> /// <param name="commandText">Texto do comando.</param> /// <param name="paging">Informações da paginação.</param> /// <param name="parameters">Parametros que serão processados.</param> /// <returns></returns> public string PrepareCommand(GDASession session, IDbCommand command, string commandText, InfoPaging paging, GDAParameter[] parameters) { if (parameters != null) { foreach (GDAParameter param in parameters) { try { string newName = (param.ParameterName[0] != '?' ? param.ParameterName : UserProvider.ParameterPrefix + param.ParameterName.Substring(1) + UserProvider.ParameterSuffix); commandText = commandText.Replace(param.ParameterName, newName); } catch (Exception ex) { throw new GDAException("Error on make parameter name '" + param.ParameterName + "'.", ex); } command.Parameters.Add(GDA.Helper.GDAHelper.ConvertGDAParameter(command, param, UserProvider)); } } var provider = session != null ? session.ProviderConfiguration.Provider : GDASettings.DefaultProviderConfiguration.Provider; if (provider.SupportSQLCommandLimit && paging != null) { commandText = provider.SQLCommandLimit(!string.IsNullOrEmpty(paging.KeyFieldName) ? new List <Mapper> { new Mapper(null, paging.KeyFieldName, DirectionParameter.InputOutput, PersistenceParameterType.Key, 0, null, null) } : null, commandText, paging.StartRow, paging.PageSize); } command.CommandText = commandText; return(commandText); }
/// <summary> /// Recupera os parametros necessário para executar a consulta. /// </summary> /// <param name="session">Sessão onde será executada a consulta.</param> /// <param name="commandType"></param> /// <param name="commandTimeout"></param> /// <param name="paging"></param> /// <param name="sqlQuery">Consulta.</param> /// <param name="parameters">Parametros para a consulta.</param> /// <returns></returns> internal GDACursorParameters GetLoadResultCursorParameters(GDASession session, CommandType commandType, int commandTimeout, string sqlQuery, InfoPaging paging, params GDAParameter[] parameters) { IDbConnection conn = CreateConnection(session); IDbCommand cmd = CreateCommand(session, conn); cmd.CommandType = commandType; if (commandTimeout >= 0) { cmd.CommandTimeout = commandTimeout; } sqlQuery = PrepareCommand(session, cmd, sqlQuery, paging, parameters); return(new GDACursorParameters(UserProvider, session, conn, cmd, null, paging != null, paging == null ? 0 : paging.StartRow, paging == null ? 0 : paging.PageSize, (sender, e) => { for (int i = 0; i < cmd.Parameters.Count; i++) { var dataParamter = (IDbDataParameter)cmd.Parameters[i]; if (dataParamter.Direction == ParameterDirection.Output || dataParamter.Direction == ParameterDirection.ReturnValue) { parameters[i].Value = ((IDbDataParameter)cmd.Parameters[i]).Value; } } })); }