2013-07-01 1 views
0

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

В .NET эквивалент того, что я пытаюсь сделать теперь в VB6 есть, определить (модель) класса с 3-мя свойствами

public class MyClass 
{ 
    public string Ref { get; set; } 
    public string OldNumber { get; set; } 
    public string NewNumber { get; set; } 
} 

В .NET я бы затем вызвать хранимую процедуру, чтобы возвращать набор результатов (может быть несколько тысяч записей) и назначить их, например, экземпляру List<MyClass>.

Тогда я мог бы, когда захочу, найти элемент в этом списке, где свойство «Ref» является «бла», и использовать этот элемент/его другие свойства (OldNumber и NewNumber).

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

+1

Если вы хотите кэшировать результаты в оперативной памяти, как, что, почему бы не просто запросить их в статический стороне клиента Recordset затем отключить его? Вы можете сделать. Найдите это, чтобы найти строки. Или эта программа настолько старая и плесневая, что использует DAO? – Bob77

+0

В меню проекта VB6 IDE выберите «Добавить класс модуля». В проект добавляется новый класс. В этом случае вы можете объявить участников как Ref, OldNumber, NewNumber и т. Д., А также определить методы LET и GET. И тогда мы можем объявить массив этого объекта класса, как вам нужно в вашем случае. – rags

+0

@ Bob77 Если вы опубликуете это как ответ, я приму его, поскольку я не думал об этом подходе, и он делает работу красиво, спасибо! – marcusstarnes

ответ

1

Если вы используете ADO, вы можете кэшировать результаты, запросив их в статическом курсовом наборе записей на стороне клиента, а затем отключив его.

Вы можете использовать сортировку, поиск, фильтр и т. Д. И перемещаться по строкам по мере необходимости. Вы даже можете улучшить поиск, создав локальный индекс в наборе записей после его открытия и отключения, используя динамическое свойство объекта Optimize объекта Field. См:

Optimize Property-Dynamic (ADO)

+0

Благодарим за дополнительную информацию об объекте Optimize dynamic. Отлично. – marcusstarnes

Смежные вопросы