4 / 4 / 0
Регистрация: 12.09.2011
Сообщений: 148
1

Цикл перестает работать через некоторое время!

25.10.2011, 12:17. Показов 2579. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребята! Всем привет! Есть вопрос (ответа в инете не нашел): есть цикл, который выполняется при поступлении с сервака данныхю Все нормально идет до определенного момента. Где то через полчаса, цикл перестает выполняться, причем ошибка никакая не вылезает, просто отстанавливается и все! Я вот думаю может переменная или память Excel перегружается и он засыпает? Соответсвенно как обнулить или очистить ее?
Просто, когда подконнективаешься заново то все работает но опять еже неокторое время!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.10.2011, 12:17
Ответы с готовыми решениями:

Через некоторое время перестает работать интернет
Переустановил комп, столкнулся с такой проблемой, что через некоторое время перестает работать...

Через некоторое время перестаёт работать кулер на БП. При перезагрузке не включается опять
Подскажите плз.Недавно столкнулся вот с такой проблемой. 3 года назад купил себе БП Thermaltake...

Canon mf3010 через некоторое время перестает сканировать
Проблема в том, что включаешь комп, включаешь мфу и все отлично работает, но через n-ое кол-во...

VPN Перестает идти передача данных через некоторое время
Здравствуйте OSX 10.10, хакинтош После подключения к VPN, через пару часов, а иногда и...

22
15137 / 6411 / 1730
Регистрация: 24.09.2011
Сообщений: 9,999
25.10.2011, 12:21 2
И где этот цикл?
1
4 / 4 / 0
Регистрация: 12.09.2011
Сообщений: 148
25.10.2011, 12:25  [ТС] 3
Я не могу его выложить! По ряду причин! Просто скажите какие могут быть причины, плз!
0
Почетный модератор
21374 / 9108 / 1082
Регистрация: 11.04.2010
Сообщений: 11,014
25.10.2011, 12:30 4
Я на третьем курсе института экстрасенсорики и аномальных явлений
У тебя в цикле переменная не обнуляется, поэтому цикл бесконечный.
2
4 / 4 / 0
Регистрация: 12.09.2011
Сообщений: 148
25.10.2011, 12:53  [ТС] 5
Допустим! Каким образом можно не выходя из цикла обнулить ее?
0
15137 / 6411 / 1730
Регистрация: 24.09.2011
Сообщений: 9,999
25.10.2011, 13:05 6
Смотрите параметры подключения. Мож там тайм-аут какой-нибудь.
0
Змеюка одышечная
9863 / 4594 / 178
Регистрация: 04.01.2011
Сообщений: 8,556
25.10.2011, 13:19 7
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Fardo Посмотреть сообщение
Допустим! Каким образом можно не выходя из цикла обнулить ее?
так экстрасенсы работают хотя бы по фотографии.
покажите фотографию вашего кода, и вам поставят диагноз.
3
356 / 162 / 27
Регистрация: 21.06.2011
Сообщений: 350
25.10.2011, 13:54 8
А что мешает воспользоваться Debug.Print?
0
4 / 4 / 0
Регистрация: 12.09.2011
Сообщений: 148
25.10.2011, 14:20  [ТС] 9
Выкладываю кусок цикла:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
Private Sub FromDataRowToOrdersList(dataRow As Object)
    Dim recId As String
    Dim i As Long
    recId = dataRow.Item("I_RID")
    i = 0
    Dim isFoundRecId As Boolean
    isFoundRecId = False
    Do While ((isFoundRecId = False) And (i < counterOfRows))
        If (ordersList(0, i) <> recId) Then
            i = i + 1
        Else
            isFoundRecId = True
        End If
    Loop
    
    If isFoundRecId Then
        'îáíîâëÿåì ñóùåñòâóþùóþ çàïèñü
        If dataRow.Item("I_ORDER_CONDITION") > 0 Then
            ordersList(1, i) = dataRow.Item("I_ORDER_CONDITION")
        End If
        If dataRow.Item("I_SHORTNAME") > 0 Then
            ordersList(2, i) = dataRow.Item("I_SHORTNAME")
        End If
        If dataRow.Item("I_DIRECTION") > 0 Then
            ordersList(3, i) = dataRow.Item("I_DIRECTION")
        End If
        If dataRow.Item("I_PRICE") > 0 Then
            ordersList(4, i) = dataRow.Item("I_PRICE")
        End If
        If dataRow.Item("I_PRICESIZE") > 0 Then
            ordersList(5, i) = dataRow.Item("I_PRICESIZE")
        End If
        If dataRow.Item("I_REMAINDER_SIZE") > 0 Then
            ordersList(6, i) = dataRow.Item("I_REMAINDER_SIZE")
        End If
        If dataRow.Item("I_TIME") > 0 Then
            ordersList(7, i) = dataRow.Item("I_TIME")
        End If
        If dataRow.Item("I_DATE") > 0 Then
            ordersList(8, i) = dataRow.Item("I_DATE")
        End If
        If dataRow.Item("I_ORDER_CODE") > 0 Then
            ordersList(9, i) = dataRow.Item("I_ORDER_CODE")
        End If
        If dataRow.Item("I_ORDERREF") > 0 Then
            ordersList(10, i) = dataRow.Item("I_ORDERREF")
        End If
        If isRobotEnable = True Then
        If (ordersList(1, i) = 14 And (ordersList(3, i) = 4 And ordersList(3, i) = 3)) Then
        Call CommandButton12_Click
        End If
        If (ordersList(1, i) = 14 And (ordersList(3, i) = 4 Or ordersList(3, i) = 3)) Then
        ThisWorkbook.Sheets("Ðîáîò").Cells(38, 2) = 14
        ...........
        Else
        ThisWorkbook.Sheets("Ðîáîò").Cells(38, 2) = Null
        ThisWorkbook.Sheets("Ðîáîò").Cells(40, 2) = Null
        ThisWorkbook.Sheets("Ðîáîò").Cells(41, 2) = Null
        End If
        Call Logic(2)
        End If
    Else
        'äîáàâëÿåì íîâóþ çàïèñü
        ReDim Preserve ordersList(11, counterOfRows + 1)
        ordersList(0, counterOfRows) = dataRow.Item("I_RID")
        ordersList(1, counterOfRows) = dataRow.Item("I_ORDER_CONDITION")
        ordersList(2, counterOfRows) = dataRow.Item("I_SHORTNAME")
        ordersList(3, counterOfRows) = dataRow.Item("I_DIRECTION")
        ordersList(4, counterOfRows) = dataRow.Item("I_PRICE")
        ordersList(5, counterOfRows) = dataRow.Item("I_PRICESIZE")
        ordersList(6, counterOfRows) = dataRow.Item("I_REMAINDER_SIZE")
        ordersList(7, counterOfRows) = dataRow.Item("I_TIME")
        ordersList(8, counterOfRows) = dataRow.Item("I_DATE")
        ordersList(9, counterOfRows) = dataRow.Item("I_ORDER_CODE")
        ordersList(10, counterOfRows) = dataRow.Item("I_ORDERREF")
        counterOfRows = counterOfRows + 1
    End If
End Sub
0
1607 / 1116 / 165
Регистрация: 23.07.2010
Сообщений: 6,466
25.10.2011, 14:42 10
Кто такой CounterOfRows и как он может измениться в цикле?
1
4 / 4 / 0
Регистрация: 12.09.2011
Сообщений: 148
25.10.2011, 14:54  [ТС] 11
Счетчик- количество строк, пришедших с сервера!

Я вот, что подумал: а может ли процедура отсановиться, если я в редакторе VBA по коду лазаю, но при этом ничего не меняю!
0
1607 / 1116 / 165
Регистрация: 23.07.2010
Сообщений: 6,466
25.10.2011, 14:58 12
Покажи, где объявлена
0
4 / 4 / 0
Регистрация: 12.09.2011
Сообщений: 148
25.10.2011, 15:01  [ТС] 13
Перед началом всех процедур: Public counterOfRows As Long
0
1607 / 1116 / 165
Регистрация: 23.07.2010
Сообщений: 6,466
25.10.2011, 15:05 14
Option Explicit заюзан?
0
4 / 4 / 0
Регистрация: 12.09.2011
Сообщений: 148
25.10.2011, 15:11  [ТС] 15
Неа! Заюзать?
0
1607 / 1116 / 165
Регистрация: 23.07.2010
Сообщений: 6,466
25.10.2011, 15:13 16
Можешь неожиданно узнать много нового (например, что CounterOfRows не описан
0
4 / 4 / 0
Регистрация: 12.09.2011
Сообщений: 148
25.10.2011, 15:14  [ТС] 17
Заюзал! Ничего не выдает пока! Counter точно заюзан иначе сразу ошибку выдал бы!
0
1607 / 1116 / 165
Регистрация: 23.07.2010
Сообщений: 6,466
25.10.2011, 15:23 18
Без дебага тяжело помочь. Может сервак отваливается. Откуда уверенность, что именно этот цикл кладет Excel?
0
4 / 4 / 0
Регистрация: 12.09.2011
Сообщений: 148
25.10.2011, 15:23  [ТС] 19
В каком месте прописать debug.print?
0
1607 / 1116 / 165
Регистрация: 23.07.2010
Сообщений: 6,466
25.10.2011, 15:32 20
"Дебаг" - это не совсем debug.print, это отладка в целом.
Если есть уверенность, что косячит именно в этом цикле то:
- заведи какую нибудь локальную переменную.
-перед входом в цикл обнули
- в цикле инкрементируй
-поставь на нее watch по условию (Break when true условие ii>100000 например)
- анализируй состояние своей системы
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.10.2011, 15:32
Помогаю со студенческими работами здесь

Принтер samsung scx 3400 через некоторое время перестает печатать
Сабж происходит на win7 x64 что на старой, что на свежеустановленной винде. Пробовал ставить разные...

Через какое-то время перестает работать хук
использую хук WH_KEYBOARD_LL.Через некоторое время хук умирает(перестает работать),что делать?...

XFX Radeon HD 6850 1gb GDDR5 стала работать хуже через некоторое время.
недавно приобрёл видеокарту XFX Radeon HD 6850 1GB GDDR5, и сразу начал проверять её в играх таких...

Цикл перестает работать
При обозначении переменной S с абсолютным значением в условии If для прекращения цикла ,весь этот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru