powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Преривание при проверке на наличие базы на MS SQL2000
3 сообщений из 3, страница 1 из 1
Преривание при проверке на наличие базы на MS SQL2000
    #33999027
vok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клиентское приложение на VFP 9.0. Данные На MS SQL2000.
На сервере должно один из трех баз к примеру a1,a2,a3.
Когда с VFP я подседеняусь с командой SS=SQLCONNECT('a1','bbbb','cccc')
при отсутвии этой базы на сервере, в фоксе происходит преривание и потому не могу переити на проверку на наличии другой базы.

Как выпутаться из этой ситуации?
Подкиньте код.
Заранее благодарю Всех.
...
Рейтинг: 0 / 0
Преривание при проверке на наличие базы на MS SQL2000
    #33999065
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для этого используются настройки в нулевом (еще не созданном) соединении

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
* Сохранение некоторых настроек
LOCAL llDispWarning, lnDispLogin
llDispWarning=SQLGetProp( 0 ,'DispWarning')
lnDispLogin=SQLGetProp( 0 ,'DispLogin')
* Установка этих настроек в значения, препятствующие выдаче системных сообщений об ошибке
SQLSetProp( 0 ,'DispWarning',.F.)
SQLSetProp( 0 ,'DispLogin', 3 )

IF SQLConnect(...)< 0 
	LOCAL laError( 1 )
	=AERROR(laError)
	* Анализируем содержимое массива laError для уточнения причины ошибки
ENDIF

* Восстановление исходных настроек
SQLSetProp( 0 ,'DispWarning',m.llDispWarning)
SQLSetProp( 0 ,'DispLogin',m.lnDispLogin)
...
Рейтинг: 0 / 0
Преривание при проверке на наличие базы на MS SQL2000
    #33999329
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Какое отношение имеет база данных к SQLCONNECT?
Установите у всех своих логинов базу данных Master по умолчанию и не будет у вас проблеммы при подключении!
2. Перед выдачей команды "USE a1" имеет смысл проверить наличия базы данных a1 на сервер:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
m.lcSQL_Database = "a1"
m.lcCommand = [select DB_ID('] + ALLTRIM(m.lcSQL_Database) + [') AS DB_ID]
IF SQLEXEC(m.hServer, m.lcCommand, "temp") <  0 
	RETURN .F.
ENDIF
IF ISNULL(temp.DB_ID)
      MESSAGEBOX("База данных " + m.lcSQL_Database + " на сервере не найдена!",  16 , "ОШИБКА")
     USE IN temp
     RETURN .F.
ENDIF
USE IN temp
*-- Переход на нужную базу данных
m.lcCommand = "USE " + m.lcSQL_Database
IF SQLEXEC(m.hServer, m.lcCommand) <  0 
	RETURN .F.
ENDIF
С уважением, Алексей
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Преривание при проверке на наличие базы на MS SQL2000
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]