Устанавливает подключение к источнику данных. Есть две версии синтаксиса.

SQLCONNECT([nStatementHandle])
SQLCONNECT([cConnectionName | cDataSourceName [, cUserID [, cPassword ]][, lShared]])

Параметры

nStatementHandle

Определяет, что новый дескриптор поодключения, будет создан для основного разделяемого подключения, которое представлено параметром nStatementHandle . Новый дескриптор использует параметры настройки, взятые от nStatementHandle вместо того, чтобы использовать параметры по умолчанию.
Обратите внимание:
Вы не можете создать новый дескриптор для подключения, которое не является разделяемым. Visual FoxPro генерирует ошибку, если Вы пытаетесь создать новый дескриптор по неразделяемому подключению.

Вы можете также использовать SQLCONNECT( ) для получения нового дескриптора по разделяемому подключению, которое было открыто использованием SQLSTRINGCONNECT( ) .
cConnectionName

Определяет именованное подключение, созданное командой CREATE CONNECTION . При использовании CREATE CONNECTION или Проектировщика Подключений для создания именованного подключения, Вы можете конфигурировать это подключение, определяя имя источника данных, пользовательский ID и пароль. При использовании именованного подключения в SQLCONNECT( ) как cConnectionName , Вы можете передать значения, отличающиеся от дополнительных параметров именованного подключении cUserID и cPassword . Эти передаваемые значения используются вместо пользовательского ID и пароля в именованном подключении, указанном cConnectionName . Например, предположите, что Вы создаете именованное подключение myNamedConnection используя CREATE CONNECTION или Проектировщик Подключений и определяете значения myUserID и myPassword для именованного подключения. Для SQLCONNECT( ) , Вы можете определить myNamedConnection как cConnectionName и затем определите myAltUserID и myAltPassword как дополнительный пользовательский ID и пароль как в следующем коде:
Скопировать код
SQLCONNECT("myNamedConnection", "myAltUserID", "myAltPassword")
Однако, если Вы создаете именованное подключение, используя строку подключения командой CREATE CONNECTION или Проектировщиком Подключения, или использовать именованное подключение в SQLCONNECT( ) , и попытайтесь передать параметры дополнительного пользовательского ID и пароля для SQLCONNECT( ) , то Visual FoxPro сгенерирует соответствующее сообщение. При создании нового разделяемого подключения, параметр cConnectionName ссылается на именованное подключение в контейнере текущей базы данных (DBC). При создании нового дескриптора подключения, основанного на существующем разделяемом подключении, параметр cConnectionName ссылается на предыдущее подключение, открытое в разделяемом режиме. Если Вы используете параметр cConnectionName без параметра lShared или с параметром lShared как Ложь (.F)., Вы будете всегда создавать новое подключение, которое не будет разделяемым. При использовании cConnectionName , если lShared является Истинным (.T). и именованное подключение является уже открытым в разделяемом режиме, то заданные имя пользователя и пароль должены соответствовать использованным ранее. Иначе, Visual FoxPro генерирует соответствующее сообщение.
cDataSourceName

Определяет имя источника данных как определено в вашем Odbc.ini файле. Вы можете также выбрать источник данных из Диалогового окна Select Connection or Data Source , которое появляется, когда Вы вызываете SQLCONNECT( ) без дополнительных параметров или только с параметром lShared .
cUserID

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

Определяет пароль для того, чтобы получить доступ к источнику данных.
lShared

Определяет, создавать ли общедоступное подключение или нет.

lShared Описание

Ложь (.F).

SQLCONNECT( ) не создает разделяемого подключения. (Значение по умолчанию)

Истина (.T).

SQLCONNECT( ) создает разделяемое подключение.

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

Числовой тип данных. SQLCONNECT( ) возвращает положительное числовое значение отличное от нуля как дескриптор подключения, если Вы успешно соединяетесь с источником данных. SQLCONNECT( ) возвращения -1, если она не может создать подключение.

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

Замечания

Функции SQLCONNECT( ) и SQLSTRINGCONNECT( ) функции возвращают числовое значение как операторный дескриптор, а не дескриптор подключения. Вы не можете получить дескриптор подключения непосредственно. Вы можете все еще устанавливать и получать свойства соединения, используя функции SQLSETPROP( ) и SQLGETPROP( ) , передавая операторный дескриптор для этого подключения и строку "Shared", как параметры. Все другие функции SQL используют операторный дескриптор вместо дескриптора подключения.

Если Вы выполняете инструкцию типа SQLCONNECT(cConnectionName.T.) , и разделяемое подключение является уже открытым с тем же самым именем, тогда параметры настройки для этого подключения не изменяются на параметры настройки, сохраненные для этого подключения в контейнере базы данных (DBC). Однако, новый дескриптор инструкции будет использовать параметры инструкции из DBC.

Обратите внимание:
Вы должны запретить диалоговое окно login ODBC, чтобы поддержать прохождение сквозных SQL-запросов при использовании Сервера Транзакций Microsoft. Чтобы отключать диалоговое окно Login ODBC, используйте инструкцию SQLSETPROP(nStatementHandle, 'DispLogin ', 3) , где cStatementHandle является дескриптором инструкции, возвращенным SQLCONNECT( ) . Вы можете также отключить диалоговое окно Login ODBC в Проектировщике Подключения .

Пример

Пример 1

Следующий пример предполагает, что источник данных ODBC по имени MyFoxSQLNT существует и доступен. SQLCONNECT( ) возвращает числовое значение, которое сохраняется в переменной gnConnHandle .

Если Вы успешно соединяетесь с источником данных, SQLCONNECT( ) возвращает положительное число, появляется диалоговое окно, и вызывается SQLDISCONNECT( ) , чтобы разъединения с источником данных.

Если Вы не можете соединиться с источником данных, SQLCONNECT( ) возвращает отрицательное число и выводит сообщение.

Скопировать код
STORE SQLCONNECT('MyFoxSQLNT', 'myUserID', 'myPassword') TO gnConnHandle
IF gnConnHandle <= 0
   = MESSAGEBOX('Cannot make connection', 16, 'SQL Connect Error')
ELSE
   = MESSAGEBOX('Connection made', 48, 'SQL Connect Message')
   = SQLDISCONNECT(gnHandle)
ENDIF

Пример 2

Каждый из следующих примеров создает новые разделяемые подключения. Появляется диалоговое окно Choose Data Source, и SQLCONNECT( ) создает окончательное подключение как разделяемое.

Скопировать код
SQLCONNECT(.T.)
SQLCONNECT( myConnectionName, .T. )
SQLCONNECT( myDataSourceName, myUserID, myPassword, .T. )

Пример 3

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

Скопировать код
SQLCONNECT( nStatementHandleValue )
SQLCONNECT( myConnectionName, .T. )

См. Также