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

Оператор Server Begin Transaction

Оператор Server Begin Transaction

Назначение:

Посылает уведомление на удаленный сервер о начале нового сеанса работы.

Синтаксис:

Server ConnectionNumber Begin Transaction

ConnectionNumber – целое число, номер соединения.

Описание:

Оператор Server Begin Transaction используется для обозначения начала сеанса обработки транзакций. Результаты последующих операторов языка SQL Insert, Delete и Update (внести, удалить и обновить), выполняемых функцией Server_Execute(), не сохраняются в базе данных до тех пор, пока не будет выполнена команда Server Commit. Команда Server Rollback используется для отмены изменений.

Пример:

Dim hdbc As Integer

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

’ ... Другие операторы ...

Server hdbc Commit

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

Server Commit, Server Rollback

480

Справочник MapBasic

Оператор Server Bind Column

Оператор Server Bind Column

Назначение:

Назначает локальную область хранения для удаленного сервера базы данных.

Синтаксис:

Server StatementNumber Bind Column n To Variable, StatusVariable StatementNumber – целое значение, номер SQL-оператора.

n – номер столбца в результирующем наборе, связываемого с переменной.

Variable – MapBasic-переменная для хранения значения столбца после выборки.

StatusVariable – переменная состояния, в которую записывается код, указывающий статус значения: пустое, усеченное или целое положительное значение.

Описание:

Команда Server Bind Column назначает переменную приложения для сохранения значения столбца в результирующем наборе, специфицированном удаленным SQL-оператором Select. Когда последующий оператор Server Fetch выбирает строку данных из базы, значение столбца n присваивается этой переменной. Статус результата сохраняется в переменной состояния, указанной параметром StatusVariable.

Значение StatusVariable

Условие

SRV_NULL_DATA

Возвращается, если столбец не имеет данных в полученной

 

строке (пустое значение).

SRV_TRUNCATED_DATA

Возвращается, если столбец содержит больше данных, чем

 

может быть сохранено в указанной MapBasic-переменной.

Целое положительное значение

Число байт, возвращенное сервером данных.

Пример:

Приложение для ”печати” адресных этикеток

Предполагается, что существует реляционная таблица ADDR с 6 столбцами Dim hdbc, hstmt As Integer

Dim first_name, last_name, street, city, state, zip As String

Dim fn_stat, ln_stat, str_stat, ct_stat, st_stat, zip_stat As Integer hdbc = Server_Connect(”QELIB”, ”DSN=ORACLE7;DLG=1”)

hstmt = Server_Execute(hdbc, ”select * from ADDR”) Server hstmt Bind Column 1 To first_name,fn_stat Server hstmt Bind Column 2 To last_name, ln_stat Server hstmt Bind Column 3 To street, str_stat Server hstmt Bind Column 4 To city, ct_stat Server hstmt Bind Column 5 To state, st_stat Server hstmt Bind Column 6 To zip, zip_stat Server hstmt Fetch NEXT

While Not Server_Eot(hstmt)

Print first_name + ” ” + last_name

Print street

Print city + ”, ” + state + ” ” + zip

Справочник MapBasic

481

Оператор Server Bind Column

Server hstmt Fetch NEXT

Wend

Server hstmt Close

Server hdbc Disconnect

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

Server_ColumnInfo()

482

Справочник MapBasic

Оператор Server Close

Оператор Server Close

Назначение:

Освобождает ресурсы, занятые удаленным SQL-оператором доступа к данным.

Синтаксис:

Server StatementNumber Close

StatementNumber – целое значение, номер SQL-оператора.

Описание:

Оператор Server Close используется для оповещения сервера о завершении обработки текущего удаленного SQL-оператора. Все ресурсы, ассоциированные с исполнением этого оператора, возвращаются в распоряжение системы.

Не забывайте вызывать оператор Server Close сразу же после исполнения функции Server_Execute() для любого не выполняющего запрос данных SQL-оператора, обработка которого закончена в Вашем приложении.

Пример:

’ Выбирает пятую запись и закрывает SQL оператор Select

hstmt = Server_Execute(hdbc, ”Select * from Massive_Database”) Server hstmt Fetch Rec 5

Server hstmt Close

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

Server_Execute()

Справочник MapBasic

483

Функция Server_ColumnInfo( )

Функция Server_ColumnInfo( )

Назначение:

Возвращает информацию о столбцах результирующего набора.

Синтаксис:

Server_ColumnInfo(StatementNumber, ColumnNo, Attr)

StatementNumber – целое значение, номер SQL-оператора.

ColumnNo – номер столбца в наборе; нумерация слева направо, начиная с 1.

Attr – код, указывающий характер возвращаемой информации.

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

Возвращаемое значение зависит от значения атрибута (параметр Attr).

Описание:

Функция Server_ColumnInfo() возвращает информацию о текущем выбранном столбце результирующего набора (определенного ранее исполненным SQL-оператором Select) в удаленной базе данных. Параметр StatementNumber задает номер-указатель (handle) SQLоператора, ассоциированный с данным соединением с сервером данных. Параметр ColumnNo указывает столбец, информацию о котором Вы хотите получить. Параметр Attr выбирает тип возвращаемой информации.

В следующей таблице перечислены возможные атрибуты (значения параметра Attr; определены в файле MAPBASIC.DEF).

Атрибут

Server_ColumnInfo() возвращает:

SRV_COL_INFO_NAME

Имя столбца.

SRV_COL_INFO_TYPE

Целый результат; код типа столбца:

 

SRV_COL_TYPE_NONE

 

SRV_COL_TYPE_CHAR

 

SRV_COL_TYPE_DECIMAL

 

SRV_COL_TYPE_INTEGER

 

SRV_COL_TYPE_SMALLINT

 

SRV_COL_TYPE_DATE

 

SRV_COL_TYPE_LOGICAL

 

SRV_COL_TYPE_FLOAT

 

SRV_COL_TYPE_FIXED_LEN_STRING

 

SRV_COL_TYPE_BIN_STRING

 

Информацию об интерпретации типов данных приложением

 

MapInfo Вы можете найти в Руководстве пользователя Map

 

Basic.

484

Справочник MapBasic

 

Функция Server_ColumnInfo( )

 

 

 

SRV_COL_INFO_SCALE

Целый результат, указывающий число разрядов справа от

 

десятичной точки для столбца типа

 

SRV_COL_TYPE_DECIMAL, или -1 для столбца любого

 

другого типа.

SRV_COL_INFO_PRECISION

Целый результат, указывающий общее число разрядов для

 

столбца типа SRV_COL_TYPE_DECIMAL, или -1 для

 

столбца любого другого типа.

SRV_COL_INFO_WIDTH

Целый результат, указывающий максимальное число симво-

 

лов в столбце типа SRV_COL_TYPE_CHAR или

 

SRV_COL_TYPE_FIXED_LEN_CHAR.

 

Замечание: При использовании модуля QELIB пустой

 

терминатор не учитывается.

 

Замечание: Возвращаемое значение совпадает с шириной

 

столбца таблицы базы данных.

SRV_COL_INFO_VALUE

Тип результата варьируется. Возвращается актуальное

 

значение данных в столбце для текущей выбранной записи.

 

Длинные строковые значения столбца, превышающие 32766

 

символов, усекаются. Двоичные (неструктурированные)

 

значения столбца возвращаются в виде шестнадцатиричных

 

символьных строк двойной длины.

SRV_COL_INFO_STATUS

Целый результат; статус значения столбца:

 

SRV_NULL_DATA – возвращается, если столбец не имеет

 

данных для выбранной строки.

 

SRV_TRUNCATED_DATA – возвращается, если в столбце

 

содержится больше данных, чем может быть сохранено в ука-

 

занной переменной.

 

Положительное целое значение – число байт, возвращенных

 

сервером данных.

SRV_COL_INFO_ALIAS

Строковый результат; псевдоним столбца, если в запросе дан-

 

ных использовался псевдоним.

Пример:

Dim hdbc, Stmt As Integer Dim Col As Integer

hdbc = Server_Connect(”QELIB”, ”DSN=ORACLE7;DLG=1”) Stmt = Server_Execute(hdbc, ”Select * from emp”) Server Stmt Fetch NEXT

For Col = 1 To Server_NumCols(Stmt)

Print Server_ColumnInfo(Stmt, Col, SRV_COL_INFO_NAME) + ” = ” + Server_ColumnInfo(Stmt, Col, SRV_COL_INFO_VALUE)

Next

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

Server Bind Column, Server Fetch, Server_NumCols()

Справочник MapBasic

485

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