/// <summary> /// This initializes the tgDataRequest for the query. /// </summary> /// <param name="request">The request to populate.</param> protected void PopulateRequest(tgDataRequest request) { IMetadata meta = this.Meta; tgConnection conn = this.tg2.Connection; tgProviderSpecificMetadata providerMetadata = meta.GetProviderMetadata(conn.ProviderMetadataKey); IDynamicQuerySerializableInternal iQuery = this as IDynamicQuerySerializableInternal; if ((this.queries != null && this.queries.Count > 0) || iQuery.InternalSetOperations != null) { AssignProviderMetadata(this, new List <tgDynamicQuerySerializable>()); } string catalog = conn.Catalog; string schema = conn.Schema; iData.Catalog = catalog; iData.Schema = schema; iData.DataID = meta.DataID; iData.ProviderMetadata = providerMetadata; iData.Columns = meta.Columns; request.ConnectionString = conn.ConnectionString; request.CommandTimeout = conn.CommandTimeout; request.QueryType = tgQueryType.DynamicQuery; request.DynamicQuery = this; request.DataID = meta.DataID; request.ProviderMetadata = providerMetadata; request.Catalog = catalog; request.Schema = schema; request.Columns = meta.Columns; if (this.m_selectAll) { _selectAll(); } if (tg.QuerySource == null || tg.QuerySource.Length == 0) { tg.QuerySource = providerMetadata.Source; } }
public tgConnection ConnectionServiceOverride(string connectionName) { if (this.connection == null) { this.connection = new tgConnection(); this.connection.Name = connectionName; } return this.connection; }
/// <summary> /// /// </summary> private void AssignProviderMetadata(tgDynamicQuerySerializable query, List <tgDynamicQuerySerializable> beenThere) { if (beenThere.Contains(query)) { return; } beenThere.Add(query); tgDynamicQuery theQuery = query as tgDynamicQuery; IDynamicQuerySerializableInternal iQuery = query as IDynamicQuerySerializableInternal; if (theQuery != null) { tgConnection conn = theQuery.tg2.Connection; if (iQuery.ProviderMetadata == null) { tgProviderSpecificMetadata providerMetadata = theQuery.Meta.GetProviderMetadata(conn.ProviderMetadataKey); iQuery.DataID = theQuery.Meta.DataID; iQuery.Columns = theQuery.Meta.Columns; iQuery.ProviderMetadata = providerMetadata; } iQuery.Catalog = conn.Catalog; iQuery.Schema = conn.Schema; } // This code is for proxies as they are unable to work with column and provider metadata // until serialized back to the server if (iQuery.SelectAll) { foreach (tgColumnMetadata col in (tgColumnMetadataCollection)iQuery.Columns) { tgQueryItem item = new tgQueryItem(this, col.Name, col.esType); query.Select(item); } } else { List <tgQueryItem> columns = iQuery.SelectAllExcept; if (columns != null) { foreach (tgColumnMetadata col in (tgColumnMetadataCollection)iQuery.Columns) { bool found = false; for (int i = 0; i < columns.Count; i++) { if (col.Name == (string)columns[i]) { found = true; break; } } if (found) { continue; } tgExpression item = new tgQueryItem(this, col.Name, col.esType); query.Select(item); } } } foreach (tgDynamicQuerySerializable subQuery in iQuery.queries.Values) { AssignProviderMetadata(subQuery, beenThere); } if (iQuery.InternalSetOperations != null) { foreach (tgSetOperation setOperation in iQuery.InternalSetOperations) { AssignProviderMetadata(setOperation.Query, beenThere); } } }