Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MB_REF_7.pdf
Скачиваний:
25
Добавлен:
13.02.2015
Размер:
2.96 Mб
Скачать

Оператор Server Commit

Оператор Server Commit

Назначение:

Вызывает фиксацию транзакции в удаленной базе данных.

Синтаксис:

Server ConnectionNumber Commit

ConnectionNumber – целое значение, номер соединения с сервером данных.

Описание:

Оператор Server Commit фиксирует транзакцию, т.е. сохраняет в базе данных изменения, произведенные в данном сеансе соединения всеми удаленными SQL-операторами, выполненными с момента исполнения оператора Server Begin Transaction. Оператор Server Commit исполняется только при наличии открытой транзакции, инициированной оператором Server Begin Transaction. Для запуска новой транзакции Вы должны выдать серверу новый оператор Server Begin Transaction, за которым в дальнейшем должен быть исполнен оператор Server Commit.

Пример:

hdbc = Server_Connect(”QELIB”, ”DSN=ORACLE7;DLG=1”) Server hdbc Begin Transaction

hstmt = Server_Execute(hdbc, ”Update Emp Set salary = salary * 1.5”) Server hdbc Commit

Смотрите также:

Server Begin Transaction, Server Rollback

486

Справочник MapBasic

Функция Server_Connect( )

Функция Server_Connect( )

Назначение:

Устанавливает соединение с удаленным сервером данных.

Синтаксис:

Server_Connect(toolkit, connect_string)

toolkit указывает модуль интерфейса удаленного доступа MapInfo, “ODBC”, “ORAINET”, через который будет осуществляться соединение с сервером данных. Значения могут быть получены из функции Server_DriverInfo( ).

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

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

Целое.

Описание:

Функция Server_Connect() выполняет соединение с базой данных и возвращает номер-указатель соединения, который должен быть передан всем операторам удаленного доступа (как параметр Con nectionNumber), которые Вы хотите выполнить в данном сеансе соединения с сервером данных.

Параметр toolkit определяет модуль интерфейса удаленного доступа MapInfo (динамически загружаемую библиотеку), через который будет осуществляться соединение с сервером данных. Информация о возможных значениях параметра может быть получена вызовом функций

Server_NumDrivers и Server_DriverInfo().

Параметр connect_string передает модулю toolkit дополнительную информацию, необходимую для подключения к серверу данных. Значение строки подключения определяется требованиями удаленного сервера данных, к которому осуществляется доступ.

Строка подключения, задаваемая в функции Server_Connect(), имеет формат:

attribute=value[;attribute=value...]

(В строке подключения должны отсутствовать пробелы.)

Прохождение соединения с DLG=1 обеспечивает удобный диалог соединения с активными кнопками справочной системы.

Атрибуты Microsoft ACCESS

В следующей таблице перечислены атрибуты, используемые СУБД ACCESS:

Атрибут

Описание

DSN

Имя ODBC0источника для Microsoft ACCESS.

UID

Регистрационный идентификатор пользователя ID.

PWD

Пароль пользователя.

Справочник MapBasic

487

Функция Server_Connect( )

SCROLL

По умолчанию присваивается значение YES. Если SCROLL=NO,

 

то библиотека ODBC не используется для этого соединения,

 

дающего возможность вызывать первую, последнюю,

 

предыдущую или произвольную запись в базе данных.

Пример строки подключения для СУБД ACCESS: ”DSN=MI ACCESS;UID=ADMIN;PWD=SECRET”

Подключение к ORACLE через ODBC

Если Ваше приложение требует передачи строки параметров для обеспечения подключения к источнику данных, необходимо указать имя источника данных. Это имя, источника данных уже настроенного для использования в Вашей системе, который будет вызван драйвером, для определения стандартных параметров, обеспечивающих подключение. Кроме того, можно явно указать пары “параметр0значение параметра”, которые могут быть использованы для подключения к базе данных без применения уже зарегистрированного в системе источника данных. В этом случае значения параметров не будут записаны в качестве системных.

Можно использовать как полные имена параметров, так и их сокращенную форму:

DSN=data_source_name[;attribute=value[;attribute=value]...]

Пример строки подключения к базе данных Oracle:

DSN=Accounting;HOST=server1;PORT=1522;SID=ORCL;UID=JOHN;PWD=XYZZY

Ниже перечислены полные имена параметров, их сокращенные формы, возможные используемые значения и краткие описания. Отдельно отмечены стандартные значения для каждого параметра, используемые при отсутствии этого параметра в строке подключения, как при явном указании имени параметра, так и при использовании системного имени подключения. При настройке параметра в подключении, имеющем имя в Вашей системе, такие настройки будут использованы как стандартные.

ApplicationUsingThreads (AUT): ApplicationUsingThreads={0 | 1}. Обеспечивает работу драйвера с многопотоковыми приложениями.

Если установлен значение равное 1 (используется по умолчанию), драйвер гарантирует работу в каждом потоке.

При использовании приложений, работающих с единственным потоком, можно установить значение параметра, равное 0. В этом случае не требуется дополнительная обработка запроса, требующаяся для обеспечения стандартов безопасности работы драйвера ODBC с несколькими потоками данных.

ArraySize (AS): Количество байт, которое использует драйвер при обращении к нескольким записям. Может принимать значение от 1 до 4GB. Большое значение увеличивает производительность за счет меньшего числа обращений по сети. Меньшее значение параметра уменьшает время отклика сервера, так как приходится передавать меньше данных.

В качестве стандартного используется значение 60 000.

CatalogOptions (CO): CatalogOptions={0 | 1}. Определяет выполнение команд REMARKS для функций обращения к спискам SQLTables и SQLColumns и COLUMN_DEF для функции обращения к списку SQLColumns при использовании Oracle. Если необходимо получить актуальные для сервера результаты выполнения таких команд, то необходимо установит значение CO равным 1.

488

Справочник MapBasic

Функция Server_Connect( )

Стандартно используется значение 0.

DataSourceName (DSN): Строка, определяющая имя источника данных в Вашей системе, обеспечивающего подключение к Oracle. В примерах используются имена "Accounting" или "OracleServ1".

DescribeAtPrepare (DAP): DescribeAtPrepare={0 | 1}. Передает драйверу указание создавать описание команды SQL при ее подготовке.

Стандартно используется значение 0, которое не приводит к созданию описания команды SQL при ее подготовке драйвером.

EnableDescribeParam (EDP): EnableDescribeParam={0 | 1}. Выключает или включает использование ODBC API функции SQLDescribeParam. Применение этой функции обеспечивает использование описателей для всех параметров, имеющих тип данных SQL_VARCHAR.

При использовании для доступа к данным Microsoft Remote Data Objects (RDO) этот атрибут необходимо установить, равным 1. Стандартно, по умолчанию, используется значение, равное 0.

EnableStaticCursorsForLongData (ESCLD): EnableStaticCursorsForLongData={0 | 1}. Определяет поддержку драйвером использования статического курсора при обращении к столбцам, имеющим тип данных Long. Поддержка статического курсора приводит к потерям производительности при обращении к данным, имеющим тип данных Long.

Стандартно используется значение, равное 0.

HostName (HOST): HostName={servername | IP_address}. Определяет имя сервера Oracle, к которому осуществляется подключение. Если Ваша сеть допускает обращение к серверу по имени, то можно указать нужное имя сервера, например, “Oracleserver”, во всех остальных случаях следует указать адрес IP, например, 199.226.224.34.

LockTimeOut (LTO): LockTimeOut={0 | 01}. Управляет включением блокировки ожидания отклика для генерации сообщения об ошибке при обработке запроса вида Select …For Update. Если установлено значение 0, то Oracle обрабатывает ошибку без задержки.

Если установлено значение 1 (по умолчанию), задержка ожидания включена, но её значение не определено.

LogonID (UID): Задает идентификатор (имя) пользователя при входе в систему. Это имя используется приложением при установлении подключения (соединения) к базе данных Oracle. Этот идентификатор требуется только в том случае, если включены средства обеспечения безопасности и защиты базы данных. Для получения необходимого идентификатора следует обратиться к администратору базу данных.

Password (PWD): Пароль, который используется приложением для подключения к базе данных Oracle.

PortNumber (PORT): Устанавливает номер порта службы контроля соединений (listener) Oracle. По умолчанию принято стандартное для Oracle значение 1521. Правильное значение можно узнать у администратора базы данных.

ProcedureRetResults (PRR): ProcedureRetResults={0 | 1}. Устанавливает возможность получения результатов от хранимых процедур функций.

Справочник MapBasic

489

Функция Server_Connect( )

Если установлено значение 0 (используется по умолчанию) драйвер не возвращает результаты выполнения хранимых процедур.

Если установлено значение 1, драйвер возвращает результаты выполнения хранимых процедур. В случае, если установлено 1, но после выполнения хранимой процедуры результат не может сформирован, следует ожидать небольшой потери производительности.

SID (SID): Системный идентификатор Oracle, по которому обращаются к экземпляру базы данных Oracle.

UseCurrrentSchema (UCS): UseCurrentSchema={0 | 1}. Определяет, что при выполнении запросов вида SQLProcedures драйвером используются настройки только текущего пользователя.

Если установлено значение, равное 0, то драйвер не определяет пользователя, от имени которого выполняется запрос.

Если установлено значение, равное 1 (используется по умолчанию), то обращение к SQLProcedures оптимизируется, но возвращаются только процедуры, право применения которых, разрешено пользователю, от чьего имени осуществляется запрос.

Атрибуты Oracle8i Spatial

Oracle8i Spatial это новое издание прастранственной базы данных от Oracle Corporation. Здесь есть сходство с ранним Oracle SDO. MapInfo не поддерживает реляционную схему Oracle SDO через OCI. MapInfo не поддерживает одновременные соединения с Oracle8i через OCI и с другими базами данных через ODBC. MapInfo не поддерживает загрузку геометрических таблиц Oracle8I Spatial через ODBC используя текущий драйвер ODBC фирмы Intersolv. Здесь нет компонента DSN.

Атрибут

Описание

LogonID (UID)

Имя пользователя (logon ID) которое приложение

 

использует для с вязи с Вашей базой данных

 

Oracle. Имя пользователя требуется , если на

 

Вашей базе есть возможность установить защиту

 

данных. В этом случае обратитесь к системному

 

администратору для получения имени.

Password (PWD)

Ваш пароль. Его тоже выдает системный

 

администратор.

ServerName (SRVR)

Имя сервера Oracle.

Пример строки соединения для доступа к серверу Oracle8i Spatial с использованием TCP/IP:

“SRVR=FATBOY;USR=SCOTT;PWD=TIGER”

Атрибуты SQL SERVER

Если Ваше приложение требует передачи строки параметров для обеспечения подключения к источнику данных, необходимо указать имя источника данных. Это имя, уже настроенного в Вашей системе источника данных, который будет вызван драйвером, для определения стандартных параметров, обеспечивающих подключение. Кроме того, можно явно указать пары “параметрзначение параметра”, которые могут быть использованы для подключения к базе данных без применения уже зарегистрированного в системе источника данных ODBC. В этом случае значения параметров не будут записаны в качестве системных.

490

Справочник MapBasic

Функция Server_Connect( )

DSN=data_source_name[;attribute=value[;attribute=value]...]

Пример строки подключения к базе данных SQL Server:

DSN=Accounting;UID=JOHN;PWD=XYZZY

Ниже перечислены полные имена параметров, их сокращенные формы, возможные используемые значения и краткие описания. Отдельно отмечены стандартные значения для каждого параметра, используемые при отсутствии этого параметра в строке подключения, как при явном указании имени параметра, так и при использовании системного имени подключения. При настройке параметра в подключении, имеющем имя в Вашей системе, такие настройки будут использованы как стандартные.

Address: сетевой адрес сервера, на котором выполняется SQL Server. Этот параметр следует использовать только в том случае, если в параметре Server явно не указано имя сервера на котором работает сервер базы данных SQL Server. Адресом может служить имя сервера в сети, а также другие способы адресации к этой вычислительной машине, напрмер, имя или номер канала, TCP/IP адрес и номер порта, адрес программного интерфейса (socket). Например, для TCP/IP: 199.199.199.5, 1433 или MYSVR, 1433.

AnsiNPW: AnsiNPW={yes | no}. Определяет исполоьзование правил ANSI.

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

Вслучае, если установлено значение, равное логическому нулю правила ANSI не применяются..

APP: Определяет имя приложения, вызывающего команду SQLDriverConnect (может использоваться для дополнительной проверки условий выполнений запроса). Если этот параметр используется, то значение указанное при его вызове будет сохранено с столбце master.dbo.sysprocesses . При вызове функций sp_who и Transact-SQL APP_NAME возвращается значение program_name.

AttachDBFileName: Имя основного (primary) файла базы данных, к которой выполняется подключение. Должно содержать полный путь. Необходимо использовать выделение всех символов "косая черта" ( \ ) в случае, если используется объявление символьных переменных в C нотации:

AttachDBFileName=c:\\MyFolder\\MyDB.mdf

Устанавливает соединение с указанной базой данных и эта база данных становится используемой по умолчанию для этого подключения. Для того, что бы применять адресацию к базе данных по имени файла с помощью параметра AttachDBFileName, необходимо объявлять соответветсвующее значение в параметре SQLDriverConnnect, DATABASE или в атрибуте подключения через SQL_COPT_CURRENT_CATALOG.

AutoTranslate: AutoTranslate={yes | no}. Определяет способ перекодирования символов ANSI.

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

Перекодировка выполняется на вычислительной машине клиента драйвером SQL Server Wire Protocol. При этом необходимо, чтобы на сервере и у клиента были установлены одни и теже наборы

Справочник MapBasic

491

Функция Server_Connect( )

кодовых страниц ANSI(ACP).

Настройка этого парметра не влияет на перекодировку символов при передаче данных следующих типов:

Данные от клиента типа Unicode SQL_C_WCHAR передаются на сервер с типом данных char, varchar или text.

Данные с сервера, имеющие тип char, varchar или text передаются клиенту для переменной типа Unicode SQL_C_WCHAR.

Данные от клиента типа ANSI SQL_C_CHAR передаются на сервер в перменную с типом данных Unicode nchar, nvarchar или ntext

Данные с сервера, имеющие тип Unicode char, varchar или text передаются клиенту для переменной типа ANSI SQL_C_CHAR.

Если значение параметра установлено равным логическоому нулю (No) перекодировка не проводится.

Драйвер SQL Server Wire Protocol не перекодирует символы ANSI SQL_C_CHAR при передаче от клиента на сервер данных в переменные типов char, varchar или text, параметров и имен столбцов . Не перекодируются символы из переменных типов char, varchar или text при передаче данных от сервера клиенту в переменные типа SQL_C_CHAR.

Если на клиенте и на сервере SQL Server используются разные активные кодовые страницы (ACP), то в этом случае дополнительные символы могут обрабатываться неправильно.

DATABASE: Имя базы данных SQL Server, используемой в установливаемом подключении по умолчанию. Если этот параметр не задан, используется база данных определенная, как используемая по умолчанию для пользователя при входе в систему. Имя базы данных, определенное, как используемая по умолчанию, в источнике данных ODBC, будет использовано вместо имени базы данных, определенной по умолчанию для пользователя при входе в систему, в случае если подключение установливается по имени источника данных ODBC. База данных должна существовать, кроме случая, когда применяется параметр AttachDBFileName. При совместном применении с параметром AttachDBFileName, используется основной (primary) файл, на который указывает значение параметра AttachDBFileName, а базе данных присваивается имя, определенное значением параметра DATABASE.

LANGUAGE: может использоваться как дополнительный, не обязаательный параметр. SQL Server может хранить системные сообщения на разных языках. При подключении к серверу SQL Server, для которого предусмотрена возможность выдавать системные сообщения на разных языках, можно указать язык, на котором следует создавать такие сообщения.

Network: Имя сетевой библиотеки. Для этого имени не нужно указывать полного пути и расширения имени файла .dll, например, Network=dbnmpntw.

PWD: Пароль, указываемый пользователем при входе в SQL Server, который определен в переменной UID. PWD не нужно определять, если для входа в систему становлен пустой пароль или в случае использовании авторизации пользователей стредствами Windows NT (Trusted_Connection=yes).

QueryLogFile: Полное имя файла, котрый будет использоваться для создания журнала обработки данных при продолжительных запросах.

QueryLog_On: QueryLog_On={yes | no}. Включает процесс создания журнала обработки

492

Справочник MapBasic

Функция Server_Connect( )

продолжительных запросов.

Если значение параметра установлено равным логической единице (Yes), то журнал обработки долгоиграющих запросов для этого подключения ведется.

Если значение параметра установлено равным логическому нулю (No), то журнал обработки продолжительных запросов не будет вестись.

QueryLogTime: Последовательность цифр, определяющих интервал (в милисекундах) записи журнала продолжительных запросов. Если отклик на запрос не пришел в течении заданного интервала, то этот запрос будет добавлен в журнал.

QuotedID: QuotedID={yes | no}. Включает или выключает обработку идентификатров в кавычках

Если значение парметра установлено равным логической единице (Yes), то параметр QUOTED_IDENTIFIERS включен. SQL Server, в этом случае, использует правила SQL-92, определющие использование кавычек в предложениях SQL.

Если значение парметра установлено равным логическому нулю (No), то параметр QUOTED_IDENTIFIERS — выключен. В этом случае, SQL Server, использует правила TransactSQL, определющие использование кавычек в предложениях SQL.

Regional: Regional={yes | no}. Включает автоматическое преобразование формы представления символов валюты, даты и времени.

Если значение параметра установлено равным логической единице (Yes), то драйвер SQL Server Wire Protocol использует настройки машины клиента при преобразовании символов валюты, даты и времени. Это преобразование — одностороннеее: драйвер не распознает форматы символов валют или даты, не определенные стандартом ODBC.

Если значение параметра установлено равным логическому нулю (No), то драйвер использует стандартные в ODBC форматы представления валюты, даты и времени и в соответствии с ними преобразует такие данные в последовательности символов.

SAVEFILE: Имя файла источника данных ODBC, в который записываются атрибуты соединения при успешном подключении.

SERVER: Имя сервера в сети, на котором работает SQL Server. В качестве такого имени можно использовать либо имя существующего в сети компьютера, либо имя имя описанное как существующее в SQL Server Client Network Utility. В случае использования копии SQL Server на том же самом компьютере, с которого выполняется подключение, можно ввести стандартное имя "(local)", как имя сервера Windows NT.

StatsLogFile: Полное имя, включая путь, файла, который будет использоваться для ведения журнала операций драйвера SQL Server Wire Protocol.

StatsLog_On: StatsLog_On={yes | no}. Включает и выключает сбор статистики операций, выполняемых драйвером SQL Server Wire Protocol.

Если значение параметра установлено равным логической единице (Yes), то сведения об операциях, выполненных драйвером SQL Server Wire Protocol заносятся в журнал.

Если значение параметра установлено равным логическому нулю (No), то сведения об операциях драйвера SQL Server Wire Protocol, выполенненых с использованием этого подключения, не сохраняются.

Trusted_Connection: Trusted_Connection={yes | no}. Определяет сведения, которые будут

Справочник MapBasic

493

Функция Server_Connect( )

использоваться драйвером SQL Server Wire Protocol, для подтверждения полномочий пользователя при входе в систему.

Если значение параметра установлено равным логической единице (Yes), то драйвер SQL Server Wire Protocol будет работать в режиме проверки прав пользователей при входе в систему Windows NT Authentication Mode. Дополнительно можно задать параметры UID и PWD.

Если значение параметра установлено равным логическому нулю (No), то, для подтверждения прав доступа к данным пользователем , драйвер SQL Server Wire Protocol будет использовать имя и пароль пользователя базы данных SQL Server. Обязательноо нужно задать параметры UID и PWD.

UID: Полноценная учетная запись входа в ситему SQL Server. Пользуясь штатными средствами подтверждения входа в систему Windows NT, параметр UID можно не задавать.

WSID: Идентификатор рабочей станции. Обычно, сетевое имя компьютера, на котором выполняется приложение. Использовать этот параметр — не обязательно. Если этот параметр задается, то его значение будет добавлено в столбец hostname таблицы master.dbo.sysprocesses. Это значение будет возвращаться по вызову функций sp_who и Transact-SQL HOST_NAME .

Атрибуты Informix

Если Ваше приложение требует передачи строки параметров для обеспечения подключения к источнику данных, необходимо указать имя источника данных. Это имя, уже настроенного в Вашей системе источника данных, который будет вызван драйвером, для определения стандартных параметров, обеспечивающих подключение. Кроме того, можно явно указать пары “параметрзначение параметра”, которые могут быть использованы для подключения к базе данных без применения уже зарегистрированного в системе источника данных ODBC. В этом случае значения параметров не будут записаны в качестве системных.

Можно использовать, как полные имена параметров, так и их сокращенную форму:

Строка подключения имеет следующий вид:

DSN=data_source_name[;attribute=value[;attribute=value]...]

Пример строки подключения к базе данных Oracle:

DSN=Informix TABLES;DB=PAYROLL

Ниже перечислены полные имена параметров, их сокращенные формы, возможные используемые значения и краткие описания. Отдельно отмечены стандартные значения для каждого параметра, используемые при отсутствии этого параметра в строке подключения, как при явном указании имени параметра, так и при использовании системного имени подключения. После настройки параметра в подключении, имеющем имя в Вашей системе, такие настройки будут использованы как стандартные.

ApplicationUsingThreads (AUT): ApplicationUsingThreads={0 | 1}. Обеспечивает работу драйвера с многопотоковыми приложениями. Если установлен значение равное 1 (используется по умолчанию), драйвер гарантирует работу в каждом потоке.При использовании приложений, работающих с единственным потоком, можно установить значение параметра, равное 0. В этом случае не требуется дополнительная обработка запроса, требующаяся для обеспечения стандартов безопасности работы драйвера ODBC с несколькими потоками данных.

CancelDetectInterval (CDI): Определяет значение в секундах, используемое как интервал проверки драйвером выполнения запроса, который может быть прерван командой SQLCancel. При обнаружении драйвером того факта, что была применена команда SQLCancel, запрос отменяется. Если установлено значение, равное 0 (используется по умолчанию), выполнение запроса не

494

Справочник MapBasic

Функция Server_Connect( )

прерывается даже в случае применения команды SQLCancel.

Например, если установить зачение параметра CancelDetectInterval равным 5, то драйвер будет проверять каждые пять секунд все ожидающие своей очереди на выполнение запросы, не пришло ли от приложения, в котором был создан этот запрос, прерывание его выполнения по команде SQLCancel.

Database (DB): Имя базы данных, к которой Вы хотите подключиться.

DataSourceName (DSN): Имя ODBC-источника данных для INFORMIX. В примерах используются имена "Accounting" или "Informix-Serv1."

HostName (HOST): Имя резидентной машины сервера INFORMIX.

LogonID (UID): Ваше имя пользователя для сервера INFORMIX.

PortNumber (PORT): Устанавливает номер порта службы контроля соединений (listener). Стандартного значения, используемого по умолчанию, нет.

ServerName (SRVR): Имя сервера на котором работает база данных Informix .

TrimBlankFromIndexName (TBFIN): TrimBlankFromIndexName={0 | 1}. Управляет способом обработки пустых символов или "пробелов" в начале имен индексов, автоматически созданных системой. Этот параметр предназначен для использования в приложениях, которые не умеют обрабатывать пробелы в начале имен индексов. Если установлено значение, равное 1 (используется по умолчанию), драйвер отрезает пробелы в начале имен индексов. Если установлено значение, равное 0, драйвер оставляет пробелы в начале имен индексов.

Пример

Dim hdbc As Integer

hdbc = Server_Connect("ODBC", "DSN=Informix;SRV=IUSSrvr;USR=atsmipro;PWD=miproats")

Смотрите также

Server Disconnect

Справочник MapBasic

495

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]