Страница 2 из 2

Ничего не понимаю!

Добавлено: 06 Сентябрь 2019, 22:01
vic7tar
Алексей- Софт-Центр писал(а): 04 Сентябрь 2019, 11:56Read_B_File - процедура, устанавливающая SET-ом В-файл (около 100 000 записей) и Next-ом читающая всегда 4 (Это я знаю) записи.
Типа:
Set(...)
loop
next(b)
if error() then break.
if условие then break.
....
end
. . .
Для меня это откровение, что GET-ы , читающие 4-е последовательные записи работают быстрее, чем последовательное чтение NEXT-ом!
А ещё, уточните, как из представленного кода видно, что next-ом читается 4 записи именно последовательно (намёк на 2-й if)?
Я так думаю, что считать последовательно 4 записи выглядит примерно так:

Код: Выделить всё

Loop 4 Times
     next(b)
end
Или я что-то недопонимаю?

Ничего не понимаю!

Добавлено: 09 Сентябрь 2019, 15:03
Алексей- Софт-Центр
Добрый день!
Всем спасибо за участие!
Нашел проблему, хорошо , что так относительно быстро. Мог бы искать значительно дольше...(((
Сразу напишу - мой косяк.
Оба варианта, с next и get работают одинаково!!! (в данном случае)
В чем была проблема:
Процедура "В", работающая с NEXT-ом файла В, имела различную реакцию на проверку отбора записи после next-a: либо Break, либо Cycle,
в зависимости от некоего параметра Х.
Параметр Х задавался в вызывающей процедуре. В моем случае, он, например Х=1, ЯВНО устанавливал break. И я это визуально видел в тексте.
А на самом деле !!!! он неявно "портился" и обнулившись - устанавливал Cycle, что, естественно, пробегало до конца файла, со всеми вытекающими последствиями.
А почему мог искать долго, потому что портился этот параметр (Х) совсем в другом месте, где я использовал IP-функцию чтения файла, указав "буфер" сstring(31), а читал 32 байта. Вот этот лишний байтик и накрывал мою переменную Х.

Алексей

Ничего не понимаю!

Добавлено: 10 Сентябрь 2019, 0:04
porutchik
как и в вопросе так и в последнем посте мало, что можно разобрать - "смешались в кучу кони, люди". Потом удивляемся: почему не работает?

Ничего не понимаю!

Добавлено: 10 Сентябрь 2019, 13:58
kreator
porutchik писал(а): 10 Сентябрь 2019, 0:04 как и в вопросе так и в последнем посте мало, что можно разобрать - "смешались в кучу кони, люди".
Я понял. Даже скуль посоветовать не удасться. Там тоже так можно влететь. :D

Ничего не понимаю!

Добавлено: 10 Сентябрь 2019, 16:11
Yufil
Но отладчик и трассировку драйвера можно посмотреть, там сразу становится ясно, что БД вроде как ни при чём.

Ничего не понимаю!

Добавлено: 10 Сентябрь 2019, 16:17
Дед Пахом
Алексей- Софт-Центр писал(а): 09 Сентябрь 2019, 15:03Сразу напишу - мой косяк.
Чёрт, проиграл пари самому себе - думал, что этот комментарий появится на 4-й или 5-й странице :D

Ничего не понимаю!

Добавлено: 10 Сентябрь 2019, 22:48
RaFaeL
Алексей- Софт-Центр писал(а): 09 Сентябрь 2019, 15:03А почему мог искать долго, потому что портился этот параметр (Х) совсем в другом месте, где я использовал IP-функцию чтения файла, указав "буфер" сstring(31), а читал 32 байта. Вот этот лишний байтик и накрывал мою переменную Х.
На всякий случай - лишних байтов два