Мешайте Visual Basic 6 изменить мое преобразование регистра

  create trigger t1_trigger
  before insert on AUDITLOGS
  for each row
   begin
     select t1_seq.nextval into :new.id from dual;
   end;

только мне нужно просто изменить имя таблицы (AUDITLOGS) на ваше имя таблицы и new.id с new.column_name

61
задан Toji 30 June 2009 в 17:08
поделиться

5 ответов

В зависимости от вашей ситуации добавление

#If False Then
    Dim CorrectCase
#End If

может помочь.

19
ответ дан 24 November 2019 в 17:25
поделиться

Вау. Я потратил много времени на программирование на VB6 и понятия не имею, о чем вы. Единственное, о чем я думаю, вы имеете в виду, это то, что intellisense изменит регистр букв в именах переменных, чтобы они соответствовали их объявлениям. Если вы на это жалуетесь, мне бы хотелось задаться вопросом, какого черта они вообще попали по-другому. И если это ваша проблема, нет, я знаю, что нет никакого способа отключить его. Я бы посоветовал вам за один раз проверить каждый файл, убедиться, что все ограничения в объявлениях и использовании переменных совпадают, и проверить их снова.

-7
ответ дан 24 November 2019 в 17:25
поделиться

Я не думаю, что кому-то это нужно. IDE изменит регистр имени переменной на тот, который был объявлен. Но, честно говоря, в свое время я работал над несколькими крупными проектами VB6 и никогда не обнаружил, что это проблема. Почему люди в вашей команде разработчиков постоянно меняют объявления переменных? Похоже, вы не установили четкую политику именования переменных, которую вы применяете. Я знаю, что вы расстроены, так что не обижайтесь, но, возможно, вам не хватает политики в этом отношении.

К сожалению, согласно этой ветке SO , трудно найти альтернативные среды разработки VB6. Итак, лучше всего решить эту проблему с помощью политики. Или перейти на VB.NET. :)

-2
ответ дан 24 November 2019 в 17:25
поделиться

Here is a real world scenario and how we solved it for our 350k LOC VB6 project.

We are using Janus Grid and at some point all the code lines which referenced DefaultValue property of JSColumn turned to defaultValue. This was an opportunity to debug the whole IDE nuisance.

What I found was that a reference to MSXML has just been added and now the IDE picks up ISchemaAttributes' defaultValue property before the Janus Grid typelib.

After some experiments I found out that the IDE collects "registered" identifiers in the following order:

  • Referenced Libraries/Projects from Project->References in the order they are listed

  • Controls from Project->Components (in unknown order)

  • Source Code

So the simple fix we did was to create a dummy class/interface with methods that hold our proper casing. Since we already had a project-wide typelib we referenced from every project before anything other typelib, this was painless to do.

Here is part of the IDL for our IUcsVbIntellisenseFix interface:

[
  odl,
  uuid(<<guid_here>>),
  version(1.0),
  dual,
  nonextensible,
  oleautomation
]
interface IUcsVbIntellisenseFix : IDispatch {
    [id(1)] HRESULT DefaultValue();
    [id(2)] HRESULT Selector();
    [id(3)] HRESULT Standalone();
    ...
}

We added a lot of methods to IUcsVbIntellisenseFix, some of them named after enum items we used to misspell and whatever we wanted to fix. The same can be done with a simple VB class in a common library (ActiveX DLL) that's referenced from every project.

This way our source code at some point converged to proper casing because upon check-out the IDE actually fixed the casing as per IUcsVbIntellisenseFix casing. Now we can't misspell enums, methods or properties even if we try to.

21
ответ дан 24 November 2019 в 17:25
поделиться

Я сочувствую. К счастью, нам разрешено отключать чувствительность к регистру в нашем инструменте проверки версий!

Кажется, что автоматическая коррекция регистра VB6 IDE иногда меняет регистр в объявлениях переменных и ссылках, возможно, в зависимости от порядка, в котором модули перечислены в файле VBP? Но IDE не сообщает вам, что файл необходимо сохранить. Таким образом, проблема появляется только тогда, когда вы сохранили файл из-за другого редактирования. Мы кратко пытались предотвратить это, проверив все файлы в проекте и тщательно настроив случай, но это не исчезло.

Я полагаю, вы могли бы перечислить имена переменных, которые затронуты - обычно подозреваемыми являются однобуквенные имена, такие как «I», «X» и «Y», возможно, потому, что они используются в стандартных обработчиках событий, таких как MouseDown. Затем напишите надстройку, которая будет искать все объявления «As» и устанавливать верхний регистр. Запустите надстройку для своих модулей, прежде чем регистрировать их. Возможно, вы сможете запустить надстройку для автоматического запуска при сохранении в VB6.

РЕДАКТИРОВАТЬ: кое-что, о чем я только что подумал: адаптировать Ответ Фреда . С этого момента каждый раз, когда вы регистрируете файл, добавляйте блок вверху, чтобы установить канонический случай для обычных подозреваемых. По крайней мере, это ' проще, чем возвращать сотни строк вручную. В конце концов, у вас будет этот блок в каждом файле, и, возможно, тогда проблема перестанет возникать.

#If False Then
  Dim I, X, Y ' etc '
#End If
1
ответ дан 24 November 2019 в 17:25
поделиться