Чтобы передать значения в ваш запрос, используйте параметры связывания
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");
});
См. документы
.
Это то, что Вы искали? Статья копируется ниже для потомства.
Можно сериализировать данные быстро путем размещения его в объект 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, Пенсильвания.
Метод, который я использовал в прошлом, помещает все переменные экземпляра на 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
Плохое мужское решение для сериализации действительно :-)
Каждый объект в платформе моего приложения имеет метод Чтения и Хранилища. То, что я делаю, передают их поток, который пишет в bytearray, и сохраните массив байтов. В то время как это не устраняет необходимость обработать каждое свойство, только необходимо иметь дело с этим однажды для чтения и однажды для записи.
Альтернатива должна использовать набор свойств как Darrel Miller, говорит, но все еще необходимо иметь дело с каждым свойством отдельно. Если Вы уже считали и храните затем мое предложение, должен сэкономить некоторое время.