@Scott Whitlock, я не смог заставить ваш код работать, но если он будет работать, это было бы здорово.
Я создал регулярный модуль, в который я помещал тип memment
Type MyMemento
Value1 As Integer
Value2 As String
End Type
Затем я создаю модуль класса MyClass с кодом
Private Memento As MyMemento
Friend Sub SetMemento(NewMemento As MyMemento)
Memento = NewMemento
End Sub
Public Function Copy() as MyClass
Dim Result as MyClass
Set Result = new MyClass
Result.SetMemento(Memento)
Set Copy = Result
End Function
Наконец, я пытаюсь вызвать функцию копирования в другом регулярном модуле, таком как
Sub Pruebas()
Dim Primero As MyClass, segundo As MyClass
Set Primero = New MyClass
Set segundo = New MyClass
Set segundo = Primero.Copy
End Sub
Я получаю сообщение (под рисунком): Ошибка компиляции: El tipo de agumento de ByRef не совпадает
Вот изображение (не более 10 баллов, так вот ссылка): http: //i.stack.imgur.com/KPdBR.gif
Я не смог получить сообщение на английском языке, я живу в Испании.
Не могли бы вы так любезно предоставить пример в VBA Excel ?, я действительно пытался сделать эту работу.
Спасибо за вашу работу
========== ==============================================================================================================================================
Проблема была в строке «Result.SetMemento (Memento)», в VBA ее нужно было вызвать с помощью «Call»
Public Function Copy() As MyClass
Dim Result As MyClass
Set Result = New MyClass
Call Result.SetMemento(Memento)
Set Copy = Result
End Function
Это отлично работает, спасибо Скотту Уитлоку, ты гений
Принятый ответ является пятном на основном определении горизонтали по сравнению с вертикальным масштабированием. Но в отличие от общего убеждения, что горизонтальное масштабирование баз данных только возможно с Cassandra, MongoDB, и т.д. я хотел бы добавить, что горизонтальное масштабирование также очень возможно с любым традиционным RDMS; это также, не используя решений других производителей.
я знаю о многих компаниях, специально основанных на SaaS компаниях, которые делают это. Это сделано с помощью логики простого приложения. Вы в основном берете ряд пользователей и делите их по нескольким серверам БД. Так, например, у Вас обычно была бы "meta" база данных/таблица, которая сохранит клиенты, сервер БД / строки подключения, и т.д. и таблица, которая хранит клиент-серверное отображение.
затем просто прямые запросы от каждого клиента к серверу БД они отображаются на.
Теперь некоторые могут сказать, что это сродни горизонтальному разделению и не "истинному" горизонтальному масштабированию, и они будут правы до некоторой степени. Но конечный результат состоит в том, что Вы масштабировали свой DB по нескольким серверам дб.
единственная разница между двумя подходами к горизонтальному масштабированию - то, что один подход (MongoDB, и т.д.) масштабирование сделано самим программным обеспечением DB. В этом смысле Вы "покупаете" масштабирование. В другом подходе (для RDBMS горизонтальное масштабирование), масштабирование создается кодом приложения / логика.
У Вас есть компания и существует только 1 рабочий, но Вы получили 1 новый проект в то время, Вы нанимаете нового кандидата - это - горизонтальное масштабирование. где новый кандидат является новыми машинами, и проект является новым трафиком/вызовами к Вашему API.
, Где как 1 проект с парнем IIT/NIT, обрабатывающим весь запрос к Вашему API/трафику. Если какое-либо время, больше запроса к Вашему API затем увольняет его и замену его с высоким IQ парень NIT/IIT - это - вертикальное масштабирование.