Редактор VB6, изменяющий случай имен переменной!

Чтобы понять , почему связывает имя таблицы (или столбца), не работает, вы должны понимать, как работают заполнители в подготовленных операциях: они не просто заменяются как строки (соответственно экранированные) , и результат SQL выполнен. Вместо этого СУБД, попросившая «подготовить» заявление, содержит полный план запросов о том, как он будет выполнять этот запрос, включая те таблицы и индексы, которые он будет использовать, которые будут одинаковыми независимо от того, как вы заполняете заполнители.

План для SELECT name FROM my_table WHERE id = :value будет таким же, как вы его замените :value, но похожее подобное SELECT name FROM :table WHERE id = :value невозможно спланировать, потому что СУБД не знает, какую таблицу вы собираетесь выбрать from.

Это не то, что библиотека абстракции, такая как PDO, может или должна работать, либо потому, что она победит две ключевые цели подготовленных операторов: 1) позволить базе данных заранее решить, как запрос будет запущен и будет использовать один и тот же план несколько раз; и 2) для предотвращения проблем безопасности путем отделения логики запроса от ввода переменной.

34
задан Mike Spross 2 November 2008 в 05:07
поделиться

6 ответов

Продолжение от ответ ди-джея ...

И это не только изменит случай переменных в том же объеме также.

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

Так причина Ваш C и X переменных изменяют случай, в то время как Y не, вероятно, потому что C и X объявляются где-то в другом месте в Вашем проекте также, но в нижнем регистре, в то время как Y не.

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

единственная альтернатива, о которой я могу думать, должна использовать некоторого другого редактора с VB6-выделяющимися возможностями сделать Ваше редактирование...

27
ответ дан Community 11 October 2019 в 06:57
поделиться

Ди-джей является пятном на... VB всегда изменяет случай переменных для соответствия исходному объявлению. Это - 'функция'.

-2
ответ дан Neil Albrock 11 October 2019 в 06:57
поделиться

Это должно быть определено/объявлено в нижнем регистре. Найдите объявление и зафиксируйте его там. IDE будет всегда изменять случай для соответствия объявлению.

0
ответ дан DJ. 11 October 2019 в 06:57
поделиться

Для заканчивания болезненного опыта разности файла установите опцию VSS в различном диалоговом окне, чтобы сделать нечувствительные к регистру сравнения. Тем путем Вы будете только видеть "реальные" изменения.

4
ответ дан Matt Dillard 11 October 2019 в 06:57
поделиться

Перечисления еще хуже. При понимании случая превратно где угодно используется перечисление, изменяет случай определения.

5
ответ дан John Y 11 October 2019 в 06:57
поделиться

Продолжение из превосходного ответа Mercator...

я рекомендовал бы:

  1. Выезд все файлы (я предполагаю использование VSS для приложения VB6)
  2. Делают восстанавливание всей Перепроверки группы
  3. проекта назад в VSS

Теперь базируется, Вы - реальные различия, а не 'автоматические' изменения, которые VB6 попыталась применить.

-2
ответ дан Andrew Bickerton 11 October 2019 в 06:57
поделиться