public IRemoteServerExpressionPlan PrepareExpression(string expression, RemoteParam[] paramsValue, DebugLocator locator, out PlanDescriptor planDescriptor, RemoteProcessCleanupInfo cleanupInfo)
 {
     try
     {
         CleanupPlans(cleanupInfo);
         RemoteServerExpressionPlan remotePlan = new RemoteServerExpressionPlan(this, (ServerExpressionPlan)_serverProcess.PrepareExpression(expression, RemoteParamsToDataParams(paramsValue), locator));
         planDescriptor = GetPlanDescriptor(remotePlan, paramsValue);
         return(remotePlan);
     }
     catch (Exception E)
     {
         throw WrapException(E);
     }
 }
Esempio n. 2
0
 public IRemoteServerExpressionPlan PrepareExpression(RemoteParam[] paramsValue, out PlanDescriptor planDescriptor)
 {
     try
     {
         DataParams localParamsValue           = _script.Process.RemoteParamsToDataParams(paramsValue);
         RemoteServerExpressionPlan remotePlan = new RemoteServerExpressionPlan(_script.Process, (ServerExpressionPlan)_serverBatch.PrepareExpression(localParamsValue));
         planDescriptor = _script.Process.GetPlanDescriptor(remotePlan, paramsValue);
         return(remotePlan);
     }
     catch (Exception E)
     {
         throw WrapException(E);
     }
 }
        internal PlanDescriptor GetPlanDescriptor(RemoteServerExpressionPlan plan, RemoteParam[] paramsValue)
        {
            PlanDescriptor descriptor = new PlanDescriptor();

            descriptor.ID         = plan.ID;
            descriptor.Statistics = plan.PlanStatistics;
            descriptor.Messages   = DataphorFaultUtility.ExceptionsToFaults(plan.Messages);
            if (plan.ServerExpressionPlan.ActualDataType is Schema.ICursorType)
            {
                descriptor.Capabilities    = plan.Capabilities;
                descriptor.CursorIsolation = plan.Isolation;
                descriptor.CursorType      = plan.CursorType;
                if (((TableNode)plan.ServerExpressionPlan.Program.Code.Nodes[0]).Order != null)
                {
                    descriptor.Order = ((TableNode)plan.ServerExpressionPlan.Program.Code.Nodes[0]).Order.Name;
                }
                else
                {
                    descriptor.Order = String.Empty;
                }
            }
            descriptor.Catalog = plan.GetCatalog(paramsValue, out descriptor.ObjectName, out descriptor.CacheTimeStamp, out descriptor.ClientCacheTimeStamp, out descriptor.CacheChanged);
            return(descriptor);
        }
Esempio n. 4
0
 public RemoteServerCursor(RemoteServerExpressionPlan plan, ServerCursor serverCursor) : base()
 {
     _plan         = plan;
     _serverCursor = serverCursor;
     AttachServerCursor();
 }