Разница между масштабированием по горизонтали и вертикали для баз данных

@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

Это отлично работает, спасибо Скотту Уитлоку, ты гений

606
задан London guy 29 July 2012 в 08:40
поделиться

2 ответа

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

я знаю о многих компаниях, специально основанных на SaaS компаниях, которые делают это. Это сделано с помощью логики простого приложения. Вы в основном берете ряд пользователей и делите их по нескольким серверам БД. Так, например, у Вас обычно была бы "meta" база данных/таблица, которая сохранит клиенты, сервер БД / строки подключения, и т.д. и таблица, которая хранит клиент-серверное отображение.

затем просто прямые запросы от каждого клиента к серверу БД они отображаются на.

Теперь некоторые могут сказать, что это сродни горизонтальному разделению и не "истинному" горизонтальному масштабированию, и они будут правы до некоторой степени. Но конечный результат состоит в том, что Вы масштабировали свой DB по нескольким серверам дб.

единственная разница между двумя подходами к горизонтальному масштабированию - то, что один подход (MongoDB, и т.д.) масштабирование сделано самим программным обеспечением DB. В этом смысле Вы "покупаете" масштабирование. В другом подходе (для RDBMS горизонтальное масштабирование), масштабирование создается кодом приложения / логика.

Buy vs Build

0
ответ дан 22 November 2019 в 21:51
поделиться

У Вас есть компания и существует только 1 рабочий, но Вы получили 1 новый проект в то время, Вы нанимаете нового кандидата - это - горизонтальное масштабирование. где новый кандидат является новыми машинами, и проект является новым трафиком/вызовами к Вашему API.

, Где как 1 проект с парнем IIT/NIT, обрабатывающим весь запрос к Вашему API/трафику. Если какое-либо время, больше запроса к Вашему API затем увольняет его и замену его с высоким IQ парень NIT/IIT - это - вертикальное масштабирование.

1
ответ дан 22 November 2019 в 21:51
поделиться
Другие вопросы по тегам:

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