здравствуйте, нужно, чтобы реальном времени я задавал запрос в БД Access, и заполнялись необходимые поля в таблице, подскажите пожалуйста, в канале call использовать тип вызова sqlquery для полей таблицы? и какой канал использовать для кнопки запроса, чтобы привязать к аргументу в одбс который проверяет равенство(where). драйвер установлен, чтение из бд происходит в шаблоне.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Уточните, пожалуйста, что включает в себя понятие "задавать запрос в БД"?
SQL-запрос реализуется с помощью канала CALL с типом вызова SQLQuery.
Для передачи в SQL-запрос с экрана значения, по которому будет осуществлять управление в SQL-запросе, нет необходимости создавать промежуточный канал. Можно непосредственно связать соответствующие аргументы каналов CALL.SQLQuery и CALL.Screen.
Posted by ilya_tirlo (Участник № / Member № 6180) on :
вообщем в базе данных есть двигатели с их характеристиками, я ввожу любое число типа инт, и мне в нужные поля таблицы выводит характеристики
Posted by ilya_tirlo (Участник № / Member № 6180) on :
можете еще подсказать типа инпут или аутпут будут каналы CALL.SQLQuery и CALL.Screen, и аргументы в них какого типа(in или out)?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
CALL.SQLQuery и CALL.Screen - Input.
Тип каждого аргумента определяется его статусом в соответствующем шаблоне. Если значение аргумента используется в шаблоне как информация, поступающая извне в шаблон, тип аргумента INPUT. Если шаблон через этот аргумент выдает информацию в какой-то канал/аргумент, то тип аргумента OUT.
Posted by ilya_tirlo (Участник № / Member № 6180) on :
у вас случайно нету примера этого?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
у меня должна быть цепочка аргумент экрана(out)->канал CALL.Screen(аргумент в канале out) -> канал CALL.SQLQuery(аргумент в канале out) -> аргумент БД in и данные аргументы БД in -> CALL.SQLQuery(аргументs в канале in)-> канал CALL.Screen(аргументs в канале in)-> аргументs экрана(in)?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Чтобы передать число в БД: ГЭ на экране -> OUT-аргумент канала CALL.Screen -> IN-аргумент канала CALL.SQLQuery -> поле таблицы в БД.
Чтобы отобразить число из БД: Поле таблицы из БД -> OUT-аргумент канала CALL.SQLQuery -> IN-аргумент канала CALL.Screen -> ГЭ на экране.
Posted by ilya_tirlo (Участник № / Member № 6180) on :
"Поле таблицы из БД" - имеется в виду аргумент(in), в шаблоне связей субд, куда я считываю функцией select? "IN-аргумент канала CALL.Screen -> ГЭ на экране"- что к чему привязывать канал к гэ или гэ к наналу? и запросы производятся автоматически в мрв или нет?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Считывать из БД надо в аргумент типа OUT шаблона связи с БД. ГЭ на экране не может привязываться к каналу. Он привязывается только к аргументу шаблона экрана. В данном случае ГЭ должен привязываться к аргументу типа INPUT. Этот аргумент канала CALL.Screen должен быть связан с аргументом OUT канала CALL.SQLQuery. Запросы в МРВ производятся только при посылке в канал CALL.SQLQuery числа, равного номеру запроса в шаблоне.
Posted by ilya_tirlo (Участник № / Member № 6180) on :
не могли бы вы посмотреть ошибки, пожалуйста?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Ошибки исправлены.
Posted by Ave Oleg (Участник № / Member № 6246) on :
После выполнения операции записи в Trace Mode, данные в БД Access отображаются с задержкой не менее секунды после выполнения записи. Понимаю, что причина можно сказать не в Trace Mode, но хотелось бы знать какая максимальная возможная скорость передачи данных по каналу в Trace Mode?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Быстродействие передачи определяется быстродействием ODBC-драйвера, циклом обработки базы каналов и периодом обработки канала вызова SQL-запроса. При разных сочетаниях управления и реализации SQL-запроса задержка может достигать 2 циклов обработки базы каналов или несколько больше.