Example #1
0
 /// <see cref="NI.Data.IDalc.ExecuteReader(System.String,System.Action<System.Data.IDataReader>)"/>
 public virtual void ExecuteReader(Query q, Action <IDataReader> callback)
 {
     using (var cmd = CommandGenerator.ComposeSelect(q)) {
         cmd.Connection = Connection;
         ExecuteReaderInternal(cmd, q.Table, callback);
     }
 }
Example #2
0
        /// <see cref="NI.Data.IDalc.Load(NI.Data.Query,System.Data.DataSet)"/>
        public virtual DataTable Load(Query query, DataSet ds)
        {
            using (var selectCmd = CommandGenerator.ComposeSelect(query)) {
                QTable source = query.Table;

                selectCmd.Connection = Connection;

                OnCommandExecuting(source.Name, StatementType.Select, selectCmd);

                var adapter = DbFactory.CreateDataAdapter(OnRowUpdating, OnRowUpdated);
                try {
                    adapter.SelectCommand = selectCmd;
                    if (adapter is DbDataAdapter)
                    {
                        ((DbDataAdapter)adapter).Fill(ds, query.StartRecord, query.RecordCount, source.Name);
                    }
                    else
                    {
                        adapter.Fill(ds);
                    }
                } finally {
                    // some implementations are sensitive to explicit dispose
                    if (adapter is IDisposable)
                    {
                        ((IDisposable)adapter).Dispose();
                    }
                }

                OnCommandExecuted(source.Name, StatementType.Select, selectCmd);
                return(ds.Tables[source.Name]);
            }
        }