powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ODBC-логин?
15 сообщений из 40, страница 2 из 2
ODBC-логин?
    #32730559
p.s. MyPickList.OnLoad - несуществующее событие (нет у ComboBox события OnLoad), но оно, как бы, происходит...

Какое событие принуждает запросить вход на сервер в описанном выше случае, не понимаю.
...
Рейтинг: 0 / 0
ODBC-логин?
    #32730697
BadBoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сурьезная заявка:

MyPickList.RowSource="MyStoredProc"
на стартовой форме

Такие вещи же обычно деются так:
MyPickList.RowSource="" (в конструкторе)
и

Me.MyPickList.RowSource="MyStoredProc"
- В процедуре открытия MainForm, но ПОСЛЕ гарантированного логина. (И вот нет никаких проблем с отсутсвием паролей в строке подключения MyStoredProc-а)

(у меня такой проблемы нет по другой причине - стартовая форма
frmLogin
занимается только логином (требуемые данные о подключениях сидят в самом mde, т.к. по сути являются именно ЕГО настройками, а не данными предметной области),
а в зависимости от успеха, frmLogin грузит все дальнейшее:
(т.е. "MainForm" , строки подключения (с паролями и без) в глобальные (точнее - паблик стандартного модуля)), или выдает фигвамы различных конфигураций (от типа ошибки).


Да, по поводу программной доводки текста прожекта до "клиентского вида" - весьма интересно. Нет ли ссылок на примеры реализаций ?
...
Рейтинг: 0 / 0
ODBC-логин?
    #32730752
BadBoy >> Да, по поводу программной доводки текста прожекта до "клиентского вида" - весьма интересно. Нет ли ссылок на примеры реализаций ?
- Northwind.mdb, начиная с MSO 2000... У меня, в свое время, это была отправная точка. Подумай, BadBoy.

BadBoy >> Сурьезная заявка: ...
- бывают вещи, созданные до тебя... Подумай, BadBoy.
...
Рейтинг: 0 / 0
ODBC-логин?
    #32730758
BadBoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Virtual Soldier, retired
BadBoy >> Сурьезная заявка: ...
- бывают вещи, созданные до тебя... Подумай, BadBoy.
не въехал. В чем проблема?
сменить стартовую форму?
или сделать MyPickList.RowSource="" , а подгрузить программно?

мутный ты , солдер, на
...
Рейтинг: 0 / 0
ODBC-логин?
    #32730793
То, о чем Вы говорите (смена стартовой формы), BadBoy, я сделал (см. 3BadBoy).
Что касается "бывают вещи, созданные до тебя..." - изначально я не участвовал в проекте.

Пост от 17:20 - в порядке инереса к последовательности событий на форме.
...
Рейтинг: 0 / 0
ODBC-логин?
    #32733171
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так и не понял, как мне подключится через ОДБС к табличкам, чтоб в их строке состояния не хранить пароль и не вылазило дурацкое окошко про выбор полей. MS SQL. Я попробовал подключить и сразу дропнуть табличку, все работает, пароь кэшируется, только вылезает запрос на выбор ключевого поля.
Ключ в табличке есть, ессно.
...
Рейтинг: 0 / 0
ODBC-логин?
    #32733319
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде победил. Кверидефом сделал.
Таблички тоже наверно можно подключать, присобачить ей кодом индекс. MyTabledef.Indexes.Append какой- нибудь. Только нудно это очень, для каждой таблички надо список уникальных полей гдето хранить. Лучше я при смене сервера ручками таблички переподключу:-)
...
Рейтинг: 0 / 0
ODBC-логин?
    #32733405
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Shark
По поводу «дурацкое окошко про выбор полей» – при моей конструкции его нет.
Сервер –SQL Server 2000, БД –«Northwind»

По поводу запросов к серверу –
Уважаемый Virtual Soldier, не могли ли Вы показать пример, на котором можно посмотреть баг с выполнением запроса к серверу под предыдущем пользователем, при изменении строки подключения. Небольшой пример.
...
Рейтинг: 0 / 0
ODBC-логин?
    #32733490
Чтобы не хранить состояние строк подключения в mdb (mde) необходимо их либо не иметь: создавать программно и уничтожать программно, что выше обсуждалось. Но незащищенные mdb (mde) не удовлетворяют желание упрятать логины-пароли с глаз пользователя, какие бы штучки не предпринимались при входе в сервер. Т.е. пользователь незащищенного клиент-серверного приложения Access (не в смысле ADP) всегда может увидеть следующее:

Известно, что содержимое строк подключения заносится в служебную таблицу MsysObjects (для таблиц) и в MSysQueries (для запросов) во вполне читабельном виде, только без права на изменение:

SELECT MSysObjects.Connect, MSysObjects.ForeignName, MSysObjects.Name
FROM MSysObjects
WHERE (((MSysObjects.Type)=4));

Здесь, MSysObjects.Type=4 – связанная таблица.

Впечатляющий таблоид.
...
Рейтинг: 0 / 0
ODBC-логин?
    #32733571
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Virtual Soldier
Я смотрел на своей БД (MySQL)

- Приконектился к табл. под пользователем User1, MsysObjects.Connect содержит строку: «DRIVER={MySQL ODBC 3.51 Driver};DESC=;DATABASE=fl;SERVER=127.0.0.1;PASSWORD=;PORT=;OPTION=3;STMT=;»
- Закрыл БД
Открыл БД не коннектясь к табл. Табл. не открываются без ввода пароля.
MsysObjects.Connect не изменилась
Конекчусь под User2, - MsysObjects.Connect не изменяется.
Так что трабла не вижу.

Если не сложно, сделайте небольшой пример, где можно было-бы увидеть баг.
Дело в том, что для меня это актуально.
...
Рейтинг: 0 / 0
ODBC-логин?
    #32734002
3ALTis
Я в "полевых" условиях. Вашу просьбу увидел утром. К вечеру (17:00 GMT+02) выложу пример с пояснениями.
У меня MS SQL 2000, Network=DBMSSOCN, ситуация повторяется, если не переопределять строку подключения любым из обсужденных выше народом способов.
...
Рейтинг: 0 / 0
ODBC-логин?
    #32734380
Фотография Shark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>впечатляющий таблоид
У меня коннект у таблиц не меняется, и пользователя там нет. Создаю кверидеф с такойже строкой подключения+ пользователь, обращаюсь к нему и тут же дропаю. Смотрю во впечатляющий таблоид. Пользователя там нет. А таблички открываются.
...
Рейтинг: 0 / 0
ODBC-логин?
    #32734457
AlTis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Shark
Мой пример не работает?
Или надо что-то другое?
...
Рейтинг: 0 / 0
ODBC-логин?
    #32734898
Если входить на сервер через несвязанную с данными форму и при входе задавать строку подключения, то проблем нет независимо от того, очищаются или нет строки подключения «запрос к серверу» при выходе или нет.

Если по тем или иным причинам вход в сервер осуществляется с формы на которой есть поле данных и при входе изменять строку подключения, то для User2, вошедшего после User1, изменения вступят в силу при следующей загрузке приложения и Access. В этой форме поле данных запросит подключение к серверу раньше, чем произойдет событие Form.OnOpen.

Для поражения «траблы» вида «День Сурка» были использованы идеи, изложенные в следующих постах: SSY (пост № 1009537); BadBoy (пост № 1014210).

Кто остался пораженным – я, потому что поле данных в форме запрашивает подключение к серверу раньше, чем происходит событие Form.OnOpen и отловить кто его генерит мне, пока, не удается ;)))

Пример содержит две формы: frmLogin и frmMain.
frmLogin – несвязанная невидимая форма, не содержащая ни одного поля.
frmMain – содержит единственное поле ComboBox у которого в качестве RowSource служит имя запроса к серверу, хранящегося в текущем mdb-файле.

Если в качестве стартовой выбрана форма frmLogin, то frmLogin.OnOpen сформирует строку подключения с несуществующим логином и пустым паролем, затем откроет коннект ODBCDirect с базой на MS SQL Server. Далее, при успешном входе на сервер, frmLogin откроет frmMain.

В frmMain на OnOpen форма frmLogin закрывается.

По нажатию кнопки «Выход» в frmMain, закрываем коннет и, в зависимости от флагов условной компиляции, очищаем строки подключения или не очищаем (для игры с dbDemo.mdb)

Модуль modODBC содержит флаги условной компиляции:

' Использовать переопределение связей с таблицами
#Const Apply_Redefine_TableDef = 1
' Очищать строки подключения таблиц при выходе из приложения (0-нет,1-да)
#Const Apply_CleanUp_TableDef = 0

' Использовать переопределение строк подключения к серверу (0-нет,1-да)
#Const Apply_Redefine_QeryDef = 1
' Очищать строки подключения запросов к серверу при выходе из приложения (0-нет,1-да)
#Const Apply_CleanUp_QeryDef = 0

На вкладке «Запросы» помещен запрос: srvSelectUnit. srvSelectUnit.sql = “exec SelectUnit”. Текст ХП SelectUnit приведен ниже:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
CREATE proc SelectUnit
as

--- в соответствии с логином пользователя формирует результирующую таблицу 

declare @current_user nvarchar( 20 )
set @current_user = suser_sname(suser_sid())

if (@current_user =  'User1')  
-- возвращает строку "1", "наименование 1" 
	SELECT UnitCode, UnitName 
	FROM MyUnits
	WHERE UnitCode =  1 

if (@current_user =  'User2') 
begin
	create table #t ([UnitCode] [int], UnitName nchar( 20 ))

	insert into #t values ( 2 ,  'наименование 2') 
	insert into #t values ( 3 ,  'наименование 3') 

	select * from #t				
	drop table #t
end
Таблица:

Код: plaintext
1.
2.
3.
4.
5.
USE Demo
CREATE TABLE [dbo].[MyUnits] (
	[UnitCode] [int] IDENTITY ( 1 ,  1 ) NOT NULL ,
	[UnitName] [nchar] ( 50 ) NOT NULL 
) ON [PRIMARY]
GO
Чисто ради инфы: http://www.hiprog.com/access/article.asp?id=297 - Описание системной таблицы MS Access - MSysObjects
...
Рейтинг: 0 / 0
ODBC-логин?
    #32734999
У меня при всяком изменении строки подключения соответствующим образом изменяется содержимое MSysObjects. Но в моем случае этот факт меня не волнует.
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ODBC-логин?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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