powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как изменить CurrentProject.BaseConnectionString
25 сообщений из 29, страница 1 из 2
Как изменить CurrentProject.BaseConnectionString
    #32748668
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XP ADP
Хочу менять свойства конекта Application Name и Workstation ID

смотрю CurrentProject.BaseConnectionString
PROVIDER=SQLOLEDB.1;INTEGRATED SECURITY=SSPI;PERSIST SECURITY INFO=FALSE;INITIAL CATALOG=Citibank;DATA SOURCE=10.10.129.90

Смотрю подключение через EM там по умолчанию проставляется
Application Name=Microsoft Office XP;Workstation ID=CB028(моя станция)

замечательно

Захожу Файл-Подключение-All-Edit Value
меняю значения подключаюсь
смотрю CurrentProject.BaseConnectionString
PROVIDER=SQLOLEDB.1;INTEGRATED SECURITY=SSPI;PERSIST SECURITY INFO=FALSE;INITIAL CATALOG=Citibank;DATA SOURCE=10.10.129.90;Use Procedure for Prepare=1;Auto Translate=True;Application Name=AppDSA;Workstation ID=zzz

превосходно

Теперь хочу заменить из кода
Property BaseConnectionString As String read-only
но OpenConnection([BaseConnectionString], [UserID], [Password])

делаю
CurrentProject.CloseConnection
CurrentProject.OpenConnection "PROVIDER=SQLOLEDB.1;INTEGRATED SECURITY=SSPI;PERSIST SECURITY INFO=FALSE;INITIAL CATALOG=Citibank;DATA SOURCE=10.10.128.13;Use Procedure for Prepare=1;Auto Translate=True;Application Name=AppDSA;Workstation ID=zzz"

хрен , расширенные свойстваи игнорируются
вместо них подставляются значения по умолчанию
CurrentProject.BaseConnectionString приобретает вид
PROVIDER=SQLOLEDB.1;INTEGRATED SECURITY=SSPI;PERSIST SECURITY INFO=FALSE;INITIAL CATALOG=Citibank;DATA SOURCE=10.10.129.90


Как програмно добится эфекта как при ручном вводе свойств "Файл-Подключение-All-Edit Value" чтобы не игнорировало расширенный свойства?

PS если строку в CurrentProject.OpenConnection
не подставлять (параметр то опциональный)
то конекшн окна бызы не открывается (два других вижу)
а свойства подключения слетают (BaseConnectionString="")
и проект при запуске становится оторванным от бызы.
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32748700
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глядя на все эти траблы с коннекшнами на ровном месте, возникает желание отправить аксесс как клиент для MSSQL на свалку истории :(
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32748829
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Latuk
Тут предлагают сохранить строку в файле с пустым значением Workstation ID...
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32748856
Hummer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще ноги растут отсюда:
ms-help://MS.MSDNQTR.2003APR.1033/oledb/htm/olprcore_chapter20_7.htm

это я просто по справке щёлкнул на закладке все в подключении....
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32748886
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>пустым значением Workstation ID
В том то и дело что он игнорирует любые значения Workstation ID
которые я пытаюсь ему задать
и ставить вместо них значения по умолчанию
Application Name=Microsoft Office XP;Workstation ID=CB028

с обычным ADO конекшеном все в порядке
а с служебными от ADP вот такая петрушка
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32748964
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
формат файла, похоже 2002 или позже?
тогда, наверно, никак. Что-то на поверхности не видно.
С форматом 2000 может быть и можно повозиться.... По крайней мере под акцесс2000
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32748989
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Latuk:Недавно реализовывал, что-то близкое по теме, может скажешь в принципе зачем хочешь это реализовать, может с другой стороны зайти?
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32749064
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хотя, наверно опять соврал...

Вот со всеми ремами - посмотри - все-таки один из процессов появляется с "желаемым" именем...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub T2()
  Dim bSStr As String
  bSStr = "PROVIDER=SQLOLEDB.1;INTEGRATED SECURITY=SSPI;PERSIST SECURITY INFO=FALSE;INITIAL CATALOG=YourDatabaseName;DATA SOURCE=fav_servername;Application Name=RTD-UNKNOWN_Sample;Use Procedure for Prepare=1;Auto Translate=True;"
   'Dim cNN As ADODB.Connection 
   'Set cNN = New ADODB.Connection 
  
   ' cNN.Open bSStr 
  
  CurrentProject.CloseConnection
   'CodeProject.CloseConnection 
   ' cNN.Close 
   ' CodeProject.Connection.Close 
  CurrentProject.Connection.Close
   'With CodeProject.Connection 
  With CurrentProject.Connection
    .Close
    .Open bSStr
  End With
  
  
End Sub
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32749083
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть в итоге примерно так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Sub T3()
  Dim bSStr As String
  bSStr = "PROVIDER=SQLOLEDB.1;INTEGRATED SECURITY=SSPI;PERSIST SECURITY INFO=FALSE;INITIAL CATALOG=YourDatabaseName;DATA SOURCE=fav_servername;Application Name=RTD-UNKNOWN_Sample;Use Procedure for Prepare=1;Auto Translate=True;"
  
  CurrentProject.CloseConnection
  With CurrentProject.Connection
    .Close
    .Open bSStr
  End With
  
End Sub

(с выражением лица)
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32749180
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правда, похоже это не совсем то, а может и совсем не то, что требовалось...

Хотя для приложения, полностью управляемого кодом, может быть и подойдет - надо "проверять"...

нечто подобное прокатывает и с

bSStr = "Provider=Microsoft.Access.OLEDB.10.0;Persist Security Info=False;Data Source=ServerName;Integrated Security=SSPI;Initial Catalog=DataBaseName;Data Provider=SQLOLEDB.1;Application Name=RTD-UNKNOWN_Sample22;"

With .AccessConnection
.Close
.Open bSStr
End With

но выглядит еще хуже - просто сбрасывает "искусственное" подключение, кажется по таймауту...
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32749232
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1)сбрасывает в любом случае
2) воспользоваться этим фактически нельзя за пределами объектных скобок.
Похоже, Акцесс возвращает в качестве CurrentProject.Connection то,
что ему самому вернуть представляется умным в момент обращения...

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

типа
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 Dim strC as string
  With CurrentProject.Connection
    .Close
    .Open bSStr
     Debug.Print .ConnectionString
     strC=.ConnectionString
  End With

  Dim rS As ADODB.Recordset
  Set rS = New ADODB.Recordset
  rS.ActiveConnection = strC
  rS.Open "select * from eventCode", , adOpenKeyset
  rS.MoveLast
  rS.Close
  Set rS = Nothing
(с выражением лица)
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32749359
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Victosha
Завтра попробую
2Proga
В кратце задумывалось так

Запускается ADP(ADE)-к оторванный от базы
Делает разные дела для которых подключение к базе не нужно (и даже лишне)
Например оглядывается вокруг и спомощью обмена форматированными
UDP сообщениями через WinSock с пулом приложений
пытается обнаружить уже запущенного себя
если находит то сам завершается , а найденный процесс активирует.
....................................................
Определяет локальный IP-к пихает его в Workstation ID
и подключается к базе

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

в результате я со стороны сервера всегда могу узнать IP-к клиента
(нужно для оповещения клиента о событиях на сервере)
я конечно могу замутить некую отдельную табличку и пихать туды
или сделать отдельный чистый ADO конект (тем более что он иногда и так нужен)
но мне показалось изящным порешать это через свойства штатных конектов
а тут на табе незадача.
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32749700
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Victosha
сделал
Private Sub Кнопка0_Click()
Dim bSStr As String
CurrentProject.CloseConnection
bSStr = "PROVIDER=SQLOLEDB.1;INTEGRATED SECURITY=SSPI;PERSIST SECURITY INFO=FALSE;INITIAL CATALOG=Citibank;DATA SOURCE=10.10.129.90;Use Procedure for Prepare=1;Auto Translate=True;Application Name=AppDSA;Workstation ID=xxx123"

With CurrentProject.Connection
.Close
.Open bSStr
End With

End Sub
после
CurrentProject.Connection.Open bSStr
появляются три подключения
причем только одно из них "xxx123"
но при обращении к CurrentProject.Connection
аксесс почемуто его закрывает и открывает заново уже без "xxx123"
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32749719
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Latuk

чем плохо иметь дополнительный коннект?

и винсок не нужен рубишь с сервера этот конект когда нужно
у клиента событие - закрыт конекшен ага надо подключиться и узнать что сервак от него хочет ? смотрим в табличку сообщений - точно пора обновить ленточную форму или клиентскую часть...
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32749724
Фотография АлексейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати хоть ip и может быть динамическим - почему бы не использовать имя компьютера в сети для винсока?
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32750051
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>почему бы не использовать имя компь
1)Юзер может быть из другого домена
2)имя все равно переводится в IP но сервак который это делает
может отвечать очень долго поскольку приоритет отдан обслуживанию мультимедийных пакетов IP-телефонии
даже если вместо IP сервака поставить в проекте его имя то подключается заметно медленнее.
Лишний раз его нагружать и от него зависеть не хочется.
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32750190
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Latuk
последний пост мой посмотри внимательнее - там как бы все и написано, что ты наблюл :))

имя приложения и WorkStationID - как бы разные весчи и "бороться" за них как будто по разному надо, в смысле - по разным поводам...

Применительно к WorkStationID - как будто достаточно обресетить соответствующее поле и должно подставляться доменное имя машины.

Application Name нормально устанавливается руками, и хранится в adp.

Если тебе в одном и том же приложении нужно несколько "имен приложений" (или спец имен рабочих станций), то, либо создавай полностью тобой управляемые "честные" соединения, либо используй строку подключения для "временного" соединения, как показано в последнем посте.
При этом обращение к CurrrentProject.Connection выполняет единственную функцию - фактически тестирует строку подключения на допустимость/работоспособность.

Если ты в своей строке уверен - проверка тебе не нужна.

Теоретически можно порассуждать на тему прямой записи/чтения в АДП-файл. Только я с трудом представляю, где оно действительно надо.
"Другие способы", может и есть, но я их не знаю.


(с выражением лица)
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32750300
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Цель у меня одна
чтобы ХП на сервере могла узнать IP подключенных клиентов
раз не получилось через штатные конекшены
Теперь думаю что лучше
создать служебнуб табличку и писать в нее
или создавать еще один чисто ADO конект передавая таки IP через Workstation ID

хотя надежда есть
ведь аксесс это как-то делает когда руками задаеш
мабудь есть какая зацепка.

Писать напрямую не хочется (хотя в приципе найти строку в файле не так уж сложно)
хочется запихать в уже открытый и присоеденится к серваку
чтобы в его master.dbo.sysprocesses поле hostname содержало IP клиента
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32750741
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вряд ли я стал делать отдельную таблицу.
Как я понял то, что ты пытаешься сделать – выбор между постоянным соединением и временным на время выполнения команды.
В любом случае для ХП это, на мой взгляд, предпочтительнее.
По крайней мере – не надо задумываться на тему – находится ли твой рекордсет в режиме «пришпоренной лошади» или нет. При том, что акцессов рекордсет на акцессовом соединении как бы не должен никогда таковым быть, все-таки иногда это не так.



(с выражением лица)
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32750786
incold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор>почему бы не использовать имя компь
1)Юзер может быть из другого домена

select * from master..sysprocesses

Там есть и домен и имя.
Все-таки почему бы на использовать имя компа?
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32750826
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Повторюсь, уже писал по этому поводу, почему не сделать от клиеннта нормальный TCP коннекшн к маленькому сервису и гонять все уведомления по ТСP а не по UDP ? А как SQL сервер будет общаться с этим сервисом - это сдед вопрос, там никаких проблем.
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32751476
Фотография Latuk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>А как SQL сервер будет общаться с этим сервисом - это сдед вопрос, там никаких проблем
проблеммы как раз есть
ALTER PROCEDURE SendWinSockUDP_p
(@Mes varchar(255))
as
DECLARE @hr int , @obj int
DECLARE @ff varbinary(255)
exec @hr=sp_OACreate 'MSWinSock.Winsock.1', @obj OUTPUT
exec @hr=sp_OASetProperty @obj, 'Protocol',1
exec @hr=sp_OASetProperty @obj, 'RemoteHost','10.10.129.90'
exec @hr=sp_OASetProperty @obj, 'RemotePort',65530
SET @ff=cast(@Mes as varbinary(255))
exec @hr=sp_OAMethod @obj,'SendData',NULL,@ff
EXEC @hr = sp_OADestroy @obj

Если использовать exec @hr=sp_OASetProperty @obj, 'Protocol',0 --(TCPIP)
то необходимо дождатся соединения
обычно это делается отслеживанием события Connect
как это сделать на T-SQL?
цикл задержки со сканом свойства State тоже ничего не дает
на VB в тело вставляеш DoEvents и нет проблем
как это сделать на T-SQL?
Собственно потому и выбрал UDP, тем более что его ограничения для меня
в данном случае(оповещение клиента о серверных событиях) не существенны.

PS Можно конечно написать расширенную ХП
но во первых это сложнее,
а во вторых у меня на работе сейчас такая машина ,
что если я на нее VS поставлю она сдохнет.
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32751480
Alexey Sh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Варианты:
1) сервер общается с сервисом по UDP
2) сервис обеспечивает кроме TCP для клиентов, COM интерфейс для управления
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32751598
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это может тебе и не подойти, по совокупности причин.
Но все таки полистай, если раньше не листал...
может что полезное и найдется...

http://search.microsoft.com/search/results.aspx?st=b&na=88&View=en-us&qu=notification+services


(с выражением лица)
...
Рейтинг: 0 / 0
Как изменить CurrentProject.BaseConnectionString
    #32761786
Фотография Victosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Latuk
Вот наткнулся щаз прямо здесь - sql.ru - почитай

http://www.sql.ru/articles/mssql/02040201AlertServiceForSQLserv.shtml
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Как изменить CurrentProject.BaseConnectionString
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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