Доступные версии документации

Установить параметры соединения
Синтаксические правила
void QSqlDatabase::setConnectOptions(<параметры>)
<параметры>::= символьный литерал или символьная переменная
Описание

Устанавливает (или изменяет) специфичные для СУБД параметры соединения с БД. Эта операция должна выполняться до открытия соединения с БД, иначе она не имеет смысла.

Изменить параметры соединения можно и таким образом:

  • закрыть соединение (функция close() );

  • вызвать данную функцию для установки нужных параметров соединения;

  • заново открыть соединение (функция open() ).

Символьная строка, задающая значение аргумента <параметры>, должна иметь формат:

<опция> [;<опция>…].

Значение <опция> зависит от СУБД, к которой выполняется соединение.

Для СУБД ЛИНТЕР допустимы следующие значения <опций>:

Обозначение опции Значение опции Примечание
AUTOCOMMIT  Задает режим транзакций Значение по умолчанию
OPTIMISTIC  

Задает режим транзакций

Примечание

Режим OPTIMISTIC устарел (использовать не рекомендуется).

  
EXCLUSIVE  Задает режим транзакций  
ANSI  Задает кодировку соединения  
KOI8  Задает кодировку соединения Значение по умолчанию

Примечание

Если аргумент <параметры> содержит несколько однотипных опций (например, "PESSIMISTIC;AUTOCOMMIT;READ_COMMITTED"), то будет использоваться последняя опция.

Возвращаемое значение

Нет.

Примеры
  ...
// Соединение с СУБД ЛИНТЕР
QSqlDatabase db = QSqlDatabase::addDatabase( "QLINTER" );
db.setUserName( "SYSTEM" );
db.setPassword( "MANAGER" );
db.setConnectOptions("OPTIMISTIC ;CHARSET=KOI8"); // установить опции соединения
if (!db.open()) {
  db.setConnectOptions(); // очистить строку опций соединения
}

// Соединение с MySQL
db.setConnectOptions("CLIENT_SSL=1;CLIENT_IGNORE_SPACE=1");
if (!db.open()) {
  db.setConnectOptions();
}

// Соединение через ODBC
db.setConnectOptions("SQL_ATTR_ACCESS_MODE=SQL_MODE_READ_ONLY; SQL_ATTR_TRACE=SQL_OPT_TRACE_ON");
if (!db.open()) {
  db.setConnectOptions();
}

См. также: connectOptions().

Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter