Не может добавить вход в систему SQL-сервера

Поскольку getText() нестатический, вы не можете вызвать его из статического метода.

Чтобы понять, почему вы должны понимать разницу между ними.

Экземпляр ( нестатические) методы работают с объектами определенного типа (класса). Они создаются с помощью следующего типа:

SomeClass myObject = new SomeClass();

Чтобы вызвать метод экземпляра, вы вызываете его в экземпляре (myObject):

myObject.getText(...)

Однако статический метод / поле можно вызывать только по типу напрямую, например: Предыдущее утверждение неверно. Можно также ссылаться на статические поля с ссылкой на объект, например myObject.staticMethod(), но это обескураживает, поскольку не дает понять, что они являются переменными класса.

... = SomeClass.final

И они не могут работать вместе, поскольку они работают в разных пространствах данных (данные экземпляра и данные класса)

Позвольте мне попытаться объяснить. Рассмотрим этот класс (psuedocode):

class Test {
     string somedata = "99";
     string getText() { return somedata; } 
     static string TTT = "0";
}

Теперь у меня следующий прецедент:

Test item1 = new Test();
 item1.somedata = "200";

 Test item2 = new Test();

 Test.TTT = "1";

Каковы значения?

Хорошо

in item1 TTT = 1 and somedata = 200
in item2 TTT = 1 and somedata = 99

Другими словами, TTT является базой данных, которая разделяется всеми экземплярами типа. Поэтому не имеет смысла говорить

class Test {
         string somedata = "99";
         string getText() { return somedata; } 
  static string TTT = getText(); // error there is is no somedata at this point 
}

. Поэтому возникает вопрос: почему TTT статический или почему getText () не статичен?

Удалите static, и он должен пройти мимо этой ошибки - но не понимая, что делает ваш тип, это только прилипающая штукатурка до следующей ошибки. Каковы требования getText(), которые требуют, чтобы он был нестационарным?

6
задан Keith Pinson 20 August 2014 в 14:58
поделиться

2 ответа

Мы все еще изо всех сил пытаемся понять, КАК из этой проблемы, но кажется, что [ourdomain\SQLAccessGroup] был искажен консультантом другого имени пользователя (это - часть установки CRM MS). Нам наконец удалось использовать некоторую логику и некоторые старые добрые сравнения SID для определения, кто играл в игру самозванца.

Наша подсказка произошла, когда я пытался добавить вход в систему как пользователь к базе данных (так как это, предположительно, уже существовало), и получил эту ошибку:

The login already has an account under a different user name.

Так, я начал исследовать каждого пользователя DB и смог выяснить преступника. Я в конечном счете разыскал его и смог переименовать пользователя и вход в систему так, чтобы установка CRM работала. Интересно, могу ли я тарифицировать их 165,00$ в час в течение моего времени... :-)

7
ответ дан 10 December 2019 в 02:56
поделиться

это, когда Вы восстанавливаете от резервного копирования или чего-то? Я нашел, что следующие работы для меня в ситуациях, когда у меня есть проблемы с учетными записями пользователей в sql

EXEC sp_change_users_login ‘Auto_Fix’, ‘user_in_here’
2
ответ дан 10 December 2019 в 02:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: