Тестирование использования NSURLConnection с ошибочными состояниями ответа HTTP

Способ, которым я использую комбинированную фильтрацию в доступе, заключается в том, что сначала я разрабатываю запрос, который содержит все данные, подлежащие фильтрации. Запрос должен содержать поля, которые будут использоваться для фильтрации. QueryAllData => "SELECT Table.Site, Table.ItemNumber, FROM Table;" Затем сделайте копию запроса и назовите его QueryFilteredData и спроектируйте отчет для отображения данных с помощью QueryFilteredData. Затем создайте форму с помощью поля со списком сайтов, поля со списком ItemNumber и объекта подчиненного отчета и назначьте SourceObject имя отчета. Используйте Список значений в качестве поля со списком Тип источника строки и введите значения для источника строки, чтобы он работал. Чтобы получить отчет для обновления, я всегда отменяю назначение SubReport.SourceOject для обновления QueryFilteredData, а затем переназначаю SubReport.SourceObject

Combobox_Site_AfterUpdate()
    Combobox_ItemNumber_AfterUpdate
End Sub

Combobox_ItemNumber_AfterUpdate()
    Select Case Combobox_ItemNumber.value 
      Case Is = "1-10"
         Store_Filters 1,10
      Case Is = "11-20"
         Store_Filters 11,20
      Case Is = "21-30"
         Store_Filters 21,30
      Case Else
         Store_Filters 1,10
End Sub    

Private Sub Store_Filters(Lowest as integer, Highest as integer)
Dim SRpt_Recset As Object
Dim Temp_Query As Variant
Dim Temp_SourceObject as Variant
Temp_SourceObject = SubReport.SourceObject
SubReport.SourceObject =""
Set SRpt_Recset = CurrentDb.QueryDefs("QueryFilteredData")
Filter_Combo_Box1 = " ((QueryAllData.[Sites])= " & Chr(39) & Combo_Box1 & Chr(39) & ") " 
Filter_Combo_Box2 = (Filter_Combo_Box1 AND (QueryAllData.ItemNumber <= Highest)) OR (Filter_Combo_Box1 AND (QueryAllData.ItemNumber >= Lowest));"
Temp_Query = " SELECT " & Query_Name & ".* " & _
                                        "FROM " & Query_Name & " " & _
                                        "WHERE (" & Filter_Combo_Box2 & ") ORDER BY [Field_Name_For_Sorting];"
SRpt_Recset.SQL = Temp_Query
'Debug.print Temp_Query
SubReport.SourceObject = Temp_SourceObject                                       
End Sub

После того, как комбинированные блоки работают, если данные собираются изменить как сайт и номер элемента, то Возможно, вы захотите изменить Источник строки в полях со списком на Использовать запрос, который использует Выбрать отдельный сайт из QueryAllData. Я не знаю, если Filter_Combo_Box2 шаг, поэтому он может нуждаться в некоторой коррекции. Надеюсь, это поможет.

22
задан Will Harris 30 March 2009 в 13:17
поделиться

1 ответ

Есть ли лучший способ обработки статусов ошибок HTTP?

Я думаю, вы на правильном пути. Я использую что-то похожее на следующий код, который я нашел здесь :

if ([response respondsToSelector:@selector(statusCode)])
{
    int statusCode = [((NSHTTPURLResponse *)response) statusCode];
    if (statusCode >= 400)
    {
        [connection cancel];  // stop connecting; no more delegate messages
        NSDictionary *errorInfo
          = [NSDictionary dictionaryWithObject:[NSString stringWithFormat:
            NSLocalizedString(@"Server returned status code %d",@""),
            statusCode]
                                        forKey:NSLocalizedDescriptionKey];
        NSError *statusError
          = [NSError errorWithDomain:NSHTTPPropertyStatusCodeKey
                                code:statusCode
                            userInfo:errorInfo];
        [self connection:connection didFailWithError:statusError];
    }
}

Это отменяет соединение и вызывает соединение: didFailWithError: , чтобы заставить коды ошибок http вести себя точно как и любая другая ошибка подключения.

43
ответ дан 29 November 2019 в 04:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: