示例#1
0
        /// <inheritdoc/>
        public bool GetQuery(string name, out IQuery query)
        {
            using (SqlConnection conn = sql_connection_provider_.CreateConnection())
                using (var builder = new CommandBuilder(conn)) {
                    IDbCommand cmd = builder
                                     .SetText(sql_connection_provider_.Schema + kGetQuery)
                                     .SetType(CommandType.StoredProcedure)
                                     .AddParameter("@name", name, DbType.String, 260)
                                     .Build();

                    try {
                        conn.Open();
                        using (IDataReader dr = cmd.ExecuteReader()) {
                            query = CreateQueryFromDataReader(dr);
                            return(true);
                        }
                    } catch (SqlException e) {
                        logger_.Error(
                            string.Format(StringResources.Log_MethodThrowsException, kClassName,
                                          "GetQuery"), e);
                    }
                }
            query = null;
            return(false);
        }
示例#2
0
 public override void OnMessage(IRubyMessage request)
 {
     try {
         switch (request.Type)
         {
         case (int)MessageType.kQueryRequestMessage:
             QueryRequestMessage query =
                 QueryRequestMessage.ParseFrom(request.Message);
             requests_timer_.Time(() => ProcessQuery(request, query));
             break;
         }
     } catch (Exception e) {
         logger_.Error(
             string.Format(R.Log_MethodThrowsException, "OnMessage", kClassName), e);
         service_host_
         .SendError(request.Id, (int)StatusCode.kServerError, request.Sender,
                    e);
     }
 }
示例#3
0
 public override bool GetConnectionProvider(IQuery query,
                                            out IConnectionProvider provider)
 {
     try {
         if (!cache_.GetIfPresent(query.Name, out provider))
         {
             provider = CreateConnectionProvider(query.Options);
             cache_.Put(query.Name, provider);
         }
         return(true);
     } catch (Exception e) {
         logger_.Error(
             string.Format(StringResources.Log_MethodThrowsException, kClassName,
                           "GetConnectionProvider"),
             e);
     }
     provider = null;
     return(false);
 }