Как клонировать объект в VB6

Чтобы передать значения в ваш запрос, используйте параметры связывания

connection.query('INSERT INTO botrequests (places_count, discount_count) VALUES (?, ?)',
    [msg.text, msg.text],
    function (error, results, fields) {
        if (error) throw error;
        console.log("Success");
    });

См. документы

.

5
задан DaveInCaz 7 January 2019 в 12:46
поделиться

4 ответа

Это то, что Вы искали? Статья копируется ниже для потомства.

Сериализируйте данные Используя PropertyBag

Можно сериализировать данные быстро путем размещения его в объект PropertyBag, затем чтения свойства PropertyBags Contents. Этим свойством является действительно Массив байтов, который является последовательным представлением данных в Вашем объекте PropertyBag. Можно использовать этот массив байтов во многих целях, включая действенные средства передачи данных по DCOM:

Private Function PackData() As String
    Dim pbTemp  As PropertyBag

    'Create a new PropertyBag object
    Set pbTemp = New PropertyBag
    With pbTemp
        'Add your data to the PB giving each item a 
        'unique string key
        Call .WriteProperty("FirstName", "John")
        Call .WriteProperty("MiddleInitial", "J")
        Call .WriteProperty("LastName", "Doe")

        'Place the serialized data into a string 
        'variable.
        Let PackData = .Contents
    End With

    Set pbTemp = Nothing
End Function

Для получения сериализированных данных просто создайте новый объект PropertyBag и установите сериализированную строку на ее свойство Contents. Преобразуйте строку в массив байтов прежде, чем присвоить его свойству Contents:

Private Sub UnPackData(sData As String)
    Dim pbTemp  As PropertyBag
    Dim arData()    As Byte

    'Convert the string representation of the data to 
    'a Byte array
    Let arData() = sData

    'Create a new PropertyBag object
    Set pbTemp = New PropertyBag
    With pbTemp
        'Load the PropertyBag with data
        Let .Contents = arData()

        'Retrieve your data using the unique key
        Let m_sFirstName = .ReadProperty("FirstName")
        Let m_sMiddleInitial = _
            .ReadProperty("MiddleInitial")
        Let m_sLastName = .ReadProperty("LastName")
    End With

    Set pbTemp = Nothing
      End Sub

Mike Kurtz, McKees-Rocks, Пенсильвания.

4
ответ дан 13 December 2019 в 22:17
поделиться

Метод, который я использовал в прошлом, помещает все переменные экземпляра на UDT. Пока Вы сохраняете актуальное UDT, можно скопировать данные класса с отдельным методом / оператор.

Учитывая класс "Человека" вот простой пример:

Private Type tPerson
    ID As Long
    FirstName As String
    LastName As String
End Type  

Private m_Person As tPerson  

Public Sub InitPerson(ID As Long, FirstName As String, LastName As String)
    m_Person.ID = ID
    m_Person.FirstName = FirstName
    m_Person.LastName = LastName
End Sub  

Friend Sub SetData(PersonData As tPerson)
    m_Person = PersonData

End Sub  

Public Function GetClone() As Person
    Dim p As New Person
    p.SetData m_Person

    Set GetClone = p

End Function  

Public Property Get FirstName() As String
    FirstName = m_Person.FirstName

End Property  

Попробовать код:

Dim p As New Person
p.InitPerson 1, "MyName", "MyLastName"

Dim p2 As Person
Set p2 = p.GetClone

MsgBox p2.FirstName

При поддержании всего экземпляра varianbles в UDT вместо того, чтобы объявить их отдельно, у Вас может быть простой метод Клона, для которого нужно очень мало обслуживания.

Другое преимущество - Вы, может поместить UDT в дескриптор файла для быстрой сериализации к диску.

Public Sub Save(filePathName As String)
    Dim f As Integer
    f = FreeFile()

    Open filePathName For Binary Access Write Lock Read Write As #f
        Put #f, , m_Person
    Close #f

End Sub

Плохое мужское решение для сериализации действительно :-)

4
ответ дан 13 December 2019 в 22:17
поделиться
1
ответ дан 13 December 2019 в 22:17
поделиться

Каждый объект в платформе моего приложения имеет метод Чтения и Хранилища. То, что я делаю, передают их поток, который пишет в bytearray, и сохраните массив байтов. В то время как это не устраняет необходимость обработать каждое свойство, только необходимо иметь дело с этим однажды для чтения и однажды для записи.

Альтернатива должна использовать набор свойств как Darrel Miller, говорит, но все еще необходимо иметь дело с каждым свойством отдельно. Если Вы уже считали и храните затем мое предложение, должен сэкономить некоторое время.

1
ответ дан 13 December 2019 в 22:17
поделиться
Другие вопросы по тегам:

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