Компилятор, совместимый с языками семейства xBase и Clipper | ||
---|---|---|
Пред. | Глава 13. Работа с SQL серверами | След. |
Ниже описываются особенности использования различных СУБД с CLIP.
Для построения приложения использующего базу данных MySQL должны быть установлены соответствующие пакеты. Это пакет разработчика MySQL и пакет clip-mysql. См. подробности в главе Установка CLIP.
Чтобы скомпоновать приложение с драйвером MySQL необходимо добавить -lclip-mysql в конец команды компиляции clip:
$clip -e test.prg -lclip-mysql
Для подключения к серверу MySQL используется следующий синтаксис ConnectNew():
ConnectNew("MS",[<cHost>],[<cPort>],[<cLogin>],[<cPassword>],[<cDB>],; [<cSocket>],[<cFlags>],[<cCharset>],[<cIsolation>])
где
"MS" - идентификатор драйвера MySQL; см. также описание функции SQLList()
cHost - строка, содержащая имя хоста сервера MySQL
cPort - номер порта сервера в виде строки
cLogin - строка, содержащая логин пользователя
cPassword - строка, содержащая пароль пользователя
cDB - строка, содержащая имя базы данных
cSocket - строка, содержащая имя UNIX socket или pipe, используемого в качестве транспорта
cFlags - флаги соединения в виде строки; см. руководство по MySQL
cCharset - кодировка, используемая сервером; если NIL, используется SET("SQL_CHARSET")
cIsolation - строка, содержащая имя уровня изоляции, используемого по умолчанию (см. подробности в руководстве по MySQL); если NIL, используется SET("MS_ISOLATION_LEVEL"); возможны следующие значения:
READ UNCOMMITTED
READ COMMITTED
REPEATABLE READ
SERIALIZABLE
эти же значения могут использоваться в качестве значений параметра <cIsolation> метода TRowset:Start().
Для связывания строк набора и записей базы данных используется поле AUTO_INCREMENT (см. описание оператора CREATE TABLE в руководстве по MySQL). См. также описание конструктора TRowset TConnect:CreateRowset().
В следующей таблице представлены реализованные типы данных MySQL и их XBase-эквиваленты.
Таблица 13-1. Реализованные типы данных MySQL
Тип данных MySQL | Тип данных CLIP |
---|---|
DECIMAL | NUMERIC |
TINY | NUMERIC |
SHORT | NUMERIC |
LONG | NUMERIC |
FLOAT | NUMERIC |
DOUBLE | NUMERIC |
LONGLONG | NUMERIC |
INT24 | NUMERIC |
TIMESTAMP | DATE |
DATE | DATE |
TIME | ARRAY {h,m,s}; h,m,s - NUMERIC |
DATETIME | DATE |
YEAR | NUMERIC |
ENUM | CHARACTER |
SET | CHARACTER |
TINY_BLOB | CHARACTER |
MEDIUM_BLOB | CHARACTER |
LONG_BLOB | CHARACTER |
BLOB | CHARACTER |
VAR_STRING | CHARACTER |
STRING | CHARACTER |
Для построения приложения использующего базу данных PostgreSQL должны быть установлены соответствующие пакеты. Это пакет разработчика PostgreSQL и пакет clip-postgres. См. подробности в главе Установка CLIP.
Чтобы скомпоновать приложение с драйвером PostgreSQL необходимо добавить -lclip-postgres в конец команды компиляции clip:
$clip -e test.prg -lclip-postgres
Для подключения к серверу PostgreSQL используется следующий синтаксис ConnectNew():
ConnectNew("PG",[<cHost>],[<cPort>],[<cLogin>],[<cPassword>],[<cDB>],; [<cTTY>],[<cOptions>],[<cCharset>],[<cIsolation>])
где
"PG" - идентификатор драйвера PostgreSQL; см. также описание функции SQLList()
cHost - строка, содержащая имя хоста сервера PostgreSQL
cPort - номер порта сервера в виде строки
cLogin - строка, содержащая логин пользователя
cPassword - строка, содержащая пароль пользователя
cDB - строка, содержащая имя базы данных
cTTY - терминал для вывода отладочной информации
cOptions - дополнительные параметры соединения; см. руководство по PostgreSQL
cCharset - кодировка, используемая сервером; если NIL, используется SET("SQL_CHARSET")
cIsolation - строка, содержащая имя уровня изоляции, используемого по умолчанию (см. подробности в руководстве по PostgreSQL); если NIL, используется SET("PG_ISOLATION_LEVEL"); возможны следующие значения:
READ COMMITTED
SERIALIZABLE
эти же значения могут использоваться в качестве значений параметра <cIsolation> метода TRowset:Start().
Для связывания строк набора и записей базы данных используется поле oid. См. руководство по PostgreSQL и описание конструктора TRowset TConnect:CreateRowset().
В следующей таблице представлены реализованные типы данных PostgreSQL и их XBase-эквиваленты.
Таблица 13-2. Реализованные типы данных PostgreSQL
Тип данных PostgreSQL | Тип данных CLIP |
---|---|
DECIMAL | NUMERIC |
ABSTIME | DATE |
BOOL | LOGICAL |
BOX | ARRAY {{x1,y1},{x2,y2}}; x1,y1,x2,y2 - NUMERIC |
BPCHAR | CHARACTER |
BYTEA | CHARACTER |
CHAR | CHARACTER |
CID | NUMERIC |
CIDR | ARRAY {x1,...}; x1,... - NUMERIC |
CIRCLE | ARRAY {x1,x2,x3}; x1,x2,x3 - NUMERIC |
DATE | DATE |
FILENAME | CHARACTER |
FLOAT4 | NUMERIC |
FLOAT8 | NUMERIC |
INET | ARRAY {x1,x2,x3,x4,x5}; x1,x2,x3,x4,x5 - NUMERIC |
INT2 | NUMERIC |
INT28 | ARRAY {x1,x2,...,x8}; x1,x2,...,x8 - NUMERIC |
INT4 | NUMERIC |
LSEG | ARRAY {{x1,y1},{x2,y2}}; x1,y1,x2,y2 - NUMERIC |
MONEY | NUMERIC |
NAME | CHARACTER |
NUMERIC | NUMERIC |
OID | NUMERIC |
OID8 | ARRAY {x1,x2,...,x8}; x1,x2,...,x8 - NUMERIC |
PATH | CHARACTER |
POINT | ARRAY {x,y}; x,y - NUMERIC |
POLYGON | ARRAY {{x1,y1},...{xn,yn}}; x1..xn, y1...yn - NUMERIC |
RELTIME | NUMERIC |
TEXT | CHARACTER |
TIMESTAMP | DATE |
VARCHAR | CHARACTER |
XID | NUMERIC |
Для построения приложения использующего базу данных Oracle должны быть установлены соответствующие пакеты. Это файлы разработчика Oracle и пакет clip-oracle. См. подробности в главе Установка CLIP.
Чтобы скомпоновать приложение с драйвером Oracle необходимо добавить -lclip-oracle в конец команды компиляции clip:
$clip -e test.prg -lclip-oracle
Для подключения к серверу Oracle используется следующий синтаксис ConnectNew():
ConnectNew("OR",NIL,NIL,<cLogin>,<cPassword>,[<cDB>],NIL,NIL,[<cCharset>],[<cIsolation>])
где
"OR" - идентификатор драйвера Oracle; см. также описание функции SQLList()
cLogin - строка, содержащая логин пользователя
cPassword - строка, содержащая пароль пользователя
cDB - строка, содержащая имя базы данных (connect string)
cCharset - кодировка, используемая сервером; если NIL, используется SET("SQL_CHARSET")
cIsolation - строка, содержащая имя уровня изоляции, используемого по умолчанию (см. подробности в руководстве по Oracle); если NIL, используется SET("OR_ISOLATION_LEVEL"); возможны следующие значения:
READ COMMITTED
SERIALIZABLE
READ ONLY
READ WRITE
эти же значения могут использоваться в качестве значений параметра <cIsolation> метода TRowset:Start().
Для связывания строк набора и записей базы данных используется поле rowid (см. руководство по Oracle). См. также описание конструктора TRowset TConnect:CreateRowset() .
Массив параметров SQL (используемый в качестве значения параметра <aParameters> методов TConnect:Command() иTConnect:CreateRowset()) должен содержать третий элемент (тип данных Oracle) в каждой строке. Типы данных Oracle определены в файле oracle.ch. Например:
#include "oracle.ch" // ... conn:Command("INSERT INTO mytable (fname,lname) VALUES (:fname,:lname)",; {{"fname","John",ORT_VARCHAR2},{"lname","Smith",ORT_VARCHAR2}})
Оператор INSERT, содержащийся в параметре <cInsertSQL> конструктора TRowset TConnect:CreateRowset(), должен содержать предложение RETURNING rowid. Например:
INSERT INTO mytable (fname,lname) VALUES (:fname,:lname) RETURNING rowid INTO :rowid
В следующей таблице представлены реализованные типы данных Oracle и их XBase-эквиваленты.
Таблица 13-3. Реализованные типы данных Oracle
Тип данных Oracle | Тип данных CLIP |
---|---|
VARCHAR2 | CHARACTER |
CHAR | CHARACTER |
RAW | CHARACTER |
NUMBER | NUMERIC |
INTEGER | NUMERIC |
FLOAT | NUMERIC |
LONG | CHARACTER |
LONG VARCHAR | CHARACTER |
LONG RAW | CHARACTER |
DATE | DATE |
CLOB | CHARACTER |
BLOB | CHARACTER |
FILE | CHARACTER |
Для построения приложения использующего базу данных Interbase должны быть установлены соответствующие пакеты. Это файлы разработчика Interbase и пакет clip-interbase. См. подробности в главе Установка CLIP.
Чтобы скомпоновать приложение с драйвером Interbase необходимо добавить -lclip-interbase в конец команды компиляции clip:
$clip -e test.prg -lclip-interbase
Для подключения к серверу Interbase используется следующий синтаксис ConnectNew():
ConnectNew("IB",NIL,NIL,<cLogin>,<cPassword>,<cDB>,NIL,NIL,[<cCharset>],[<cIsolation>])
где
"IB" - идентификатор драйвера Interbase; см. также описание функции SQLList()
cLogin - строка, содержащая логин пользователя
cPassword - строка, содержащая пароль пользователя
cDB - строка, содержащая имя базы данных (имя файла)
cCharset - кодировка, используемая сервером; если NIL, используется SET("SQL_CHARSET")
cIsolation - строка, содержащая имя уровня изоляции, используемого по умолчанию (см. подробности в руководстве по Interbase); если NIL, используется SET("IB_ISOLATION_LEVEL"); возможны следующие значения:
CONCURRENCY
READ COMMITTED or READ_COMMITTED
REC VERSION or REC_VERSION
NO REC VERSION or NO_REC_VERSION
CONSISTENCY
WAIT
NOWAIT
READ
WRITE
эти же значения могут использоваться в качестве значений параметра <cIsolation> метода TRowset:Start().
Для связывания строк набора и записей базы данных используется поле, чье имя передается конструктору TRowset в параметре <cIdName>. См. описание TConnect:CreateRowset().
При использовании драйвера Interbase метод TConnect:Start() может получать второй параметр <cLockTables>, в котором описывается какие таблицы и как должны быть заблокированы на время транзакции. Строка, содержащаяся в <cLockTables> должна иметь следующий формат:
<table_name>=<lock_type>[;<table_name>=<lock_type>,...]
где <table_name> - имя таблицы; <lock_type> - тип блокировки; возможны следующие значения:
SHARED_READ
SHARED_WRITE
PROTECTED_READ
PROTECTED_WRITE
См. подробности в руководстве по Interbase.
В следующей таблице представлены реализованные типы данных Interbase и их XBase-эквиваленты.
Таблица 13-4. Реализованные типы данных Interbase
Тип данных Interbase | Тип данных CLIP |
---|---|
ARRAY | ARRAY |
BLOB | CHARACTER |
CHAR | CHARACTER |
DATE | DATE |
DECIMAL | NUMERIC |
DOUBLE PRECISON | NUMERIC |
INTEGER | NUMERIC |
FLOAT | NUMERIC |
NUMERIC | NUMERIC |
SMALLINT | NUMERIC |
TIME | DATETIME |
TIMESTAMP | DATETIME |
VARCHAR | CHARACTER |
Для построения приложения использующего ODBC должны быть установлены соответствующие пакеты. Это пакет разработчика ODBC (iODBC2 или unixodbc) и пакет clip-odbc. См. подробности в главе Установка CLIP.
Чтобы скомпоновать приложение с драйвером ODBC необходимо добавить -lclip-odbc в конец команды компиляции clip:
$clip -e test.prg -lclip-odbc
Для подключения к базе данных через ODBC используется следующий синтаксис ConnectNew():
ConnectNew("ODBC",<cDSN>,[<cLogin>],[<cPassword>],NIL,NIL,NIL,NIL,[<cCharset>])
где
"ODBC" - идентификатор драйвера ODBC; см. также описание функции SQLList()
cDSN - строка, содержащая имя источника данных (см. руководство по ODBC и файл odbc.ini)
cLogin - строка, содержащая логин пользователя
cPassword - строка, содержащая пароль пользователя
cCharset - кодировка, используемая сервером; если NIL, используется SET("SQL_CHARSET")
Для связывания строк набора и записей базы данных используется поле, чье имя передается конструктору TRowset в параметре <cIdName>. См. описание TConnect:CreateRowset().
При использовании ODBC нужный уровень изоляции должен устанавливаться вручную. Параметры метода TConnect:Start() игнорируются.
В следующей таблице представлены реализованные типы данных ODBCи их XBase-эквиваленты.
Таблица 13-5. Реализованные типы данных ODBC
Тип данных ODBC | Тип данных CLIP |
---|---|
TINYINT | NUMERIC |
SMALLINT | NUMERIC |
INTEGER | NUMERIC |
BIGINT | NUMERIC |
DECIMAL | NUMERIC |
DOUBLE | NUMERIC |
NUMERIC | NUMERIC |
FLOAT | NUMERIC |
REAL | NUMERIC |
CHAR | CHARACTER |
VARCHAR | CHARACTER |
LONGVARCHAR | CHARACTER |
DATE | DATE |
TIME | ARRAY {h,m,s}; h,m,s - NUMERIC |
TIMESTAMP | DATETIME |
LONGVARBINARY | CHARARCTER |
Для построения приложения использующего DBTCP должны быть установлены соответствующие пакеты. Это пакет разработчика DBTCP и пакет clip-dbtcp. См. подробности в главе Установка CLIP.
Чтобы скомпоновать приложение с драйвером DBTCP необходимо добавить -lclip-dbtcp в конец команды компиляции clip:
$clip -e test.prg -lclip-dbtcp
Для подключения к базе данных через DBTCP используется следующий синтаксис ConnectNew():
ConnectNew("DBTCP",[<cHost>],[<cPort>],[<cLogin>],[<cPassword>],<cDSN>,NIL,NIL,[<cCharset>])
где
"DBTCP" - идентификатор драйвера DBTCP; см. также описание функции SQLList()
cHost - строка, содержащая имя хоста на котором работает сервер DBTCP
cPort - номер порта сервера в виде строки
cLogin - строка, содержащая логин пользователя
cPassword - строка, содержащая пароль пользователя
cDSN - строка, содержащая имя источника данных
cCharset - кодировка, используемая сервером; если NIL, используется SET("SQL_CHARSET")
Для связывания строк набора и записей базы данных используется поле, чье имя передается конструктору TRowset в параметре <cIdName>. См. описание TConnect:CreateRowset().
При использовании DBTCP нужный уровень изоляции должен устанавливаться вручную. Параметры метода TConnect:Start() игнорируются.
Пред. | Начало | След. |
Описание API SQL | Уровень выше | Работа с сокетами |