Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft Access Новый топик    Ответить
 Вывести в форму время выполнения запроса к БД  [new]
Di666
Member

Откуда:
Сообщений: 1
Добрый час, форумчане!

Выполняю лабораторную работу, ее суть в том, чтобы в сгенерировать определенное количество случайных данных в таблицу и посчитать время их выполнения.

Option Compare Database

Sub randomDigits(tableName, fldOt, fldDo, n)
    Start_time = Time()
    Dim i
    Randomize
    With CurrentDb.OpenRecordset("select * from [" & tableName & "]")
        For i = 1 To n
            .AddNew
            !number = Rnd(i) * (fldDo - fldOt) + fldOt
            .update
        Next
    End With
    End_time = Time()
End Sub


Sub button_Click() // процедура для считывания данных из соответствующих полей формы
n = Number19()
fldOt = number_ot()
fldDo = number_do()
randomDigits "table", number_ot, number_do, n
End Sub


Как можно подсчитать не время выполнения этого кода, а именно время от начала до конца построения нужного кол-ва записей в базе данных и вывести в форму?
5 окт 17, 20:56    [20846496]     Ответить | Цитировать Сообщить модератору
 Re: Вывести в форму время выполнения запроса к БД  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 15944
Di666
подсчитать не время выполнения этого кода, а именно время от начала до конца построения нужного кол-ва записей в базе данных

А в чём разница-то?

Di666
With CurrentDb.OpenRecordset("select * from [" & tableName & "]")

А почему не просто
With CurrentDb.OpenRecordset(tableName)

?
5 окт 17, 21:26    [20846531]     Ответить | Цитировать Сообщить модератору
 Re: Вывести в форму время выполнения запроса к БД  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 3733
Посмотрите вот это Использование функции timeGetTime() для оптимизации приложений на Access Возможно поможет.
6 окт 17, 12:36    [20847859]     Ответить | Цитировать Сообщить модератору
 Re: Вывести в форму время выполнения запроса к БД  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 3733
Akina
А почему не просто
   CurrentDb.OpenRecordset(tableName)

?
А вот у меня иногда выражение
   CurrentDb.OpenRecordset(tableName)
выдавало ошибку. А вот
   CurrentDb.OpenRecordset("select * from [" & tableName & "]")
срабатывало нормально. Причём это было именно на таблицах. Если подставлять запрос, то там проблем никогда не было.

Почему так происходило, так и не выяснил. Просто взял для себя за правило, открывать рекордсеты на таблицах через SELECT.
6 окт 17, 12:44    [20847901]     Ответить | Цитировать Сообщить модератору
 Re: Вывести в форму время выполнения запроса к БД  [new]
MrShin
Member

Откуда:
Сообщений: 840
Joss
А вот у меня иногда выражение
   CurrentDb.OpenRecordset(tableName)

выдавало ошибку

Аналогично. Как всегда, разбираться было некогда, если кто знает причину, напишите, плих.
6 окт 17, 13:01    [20847967]     Ответить | Цитировать Сообщить модератору
 Re: Вывести в форму время выполнения запроса к БД  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 4567
MrShin
Joss
А вот у меня иногда выражение
   CurrentDb.OpenRecordset(tableName)

выдавало ошибку

Аналогично. Как всегда, разбираться было некогда, если кто знает причину, напишите, плих.
конкретно об этом случае:аргумент должен быть String
 CurrentDb.OpenRecordset("tableName")
Из HELP:"источник-Выражение или переменная типа String, определяющая источник записей для нового объекта Recordset. В качестве источника записей можно указать имя таблицы или запроса, а также инструкцию SQL, которая возвращает записи."
6 окт 17, 14:52    [20848591]     Ответить | Цитировать Сообщить модератору
 Re: Вывести в форму время выполнения запроса к БД  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 3733
У меня tabName и было стринговой переменной. И подстановка имени таблицы в кавычках проблему не решало.
7 окт 17, 17:38    [20851039]     Ответить | Цитировать Сообщить модератору
 Re: Вывести в форму время выполнения запроса к БД  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 4567
Joss,
У-у Шайтан!!
7 окт 17, 18:55    [20851150]     Ответить | Цитировать Сообщить модератору
 Re: Вывести в форму время выполнения запроса к БД  [new]
sdku
Member

Откуда: Краснодар
Сообщений: 4567
Joss,
У-у Шайтан!!
(привык доверять HELPу-маловероятно что написанное в нем false)
7 окт 17, 18:58    [20851154]     Ответить | Цитировать Сообщить модератору
 Re: Вывести в форму время выполнения запроса к БД  [new]
Joss
Member

Откуда: г. Минск
Сообщений: 3733
В том то и дело, что ошибка возникала не всегда. Написал на одном компьютере - всё работает. Пересел за другой - ошибка. Отчего, почему? Не ясно. Или другой случай. Программа отлажена, всё работает. Через пару дней запускаешь -ошибка. И опять ничего не понятно. Может разные обновления, может правилась таблица... Ну не разобрался я в этом.
8 окт 17, 15:59    [20852260]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft Access Ответить