У меня есть странная проблема, когда я пытаюсь отправить этот запрос MySQL:
insert into tblWydatkiPLN(
IDDelegacji,
IDKategoria,
IDTypTransakcji,
Kwota,
Opis
) values(
'13',
'3',
'1',
'44.15',
'Taxi'
);
insert into tblWydatkiPLN(
IDDelegacji,
IDKategoria,
IDTypTransakcji,
Kwota,
Opis
) values(
'13',
'3',
'1',
'57.71',
'Taxi'
);
используя vba. Я отправляю его с помощью этого кода (используя переменную strSQL):
Set DBConnection = CreateObject("ADODB.Connection")
DBConnection.Open strConnString
Debug.Print strSQL
If InStr(strSQL, "select") = 1 Then
Set DBRecordset = CreateObject("ADODB.Recordset")
DBRecordset.Open strSQL, DBConnection, adOpenStatic
If Not DBRecordset.EOF Then
myArray = DBRecordset.GetRows()
End If
Set DBRecordset = Nothing
Else
DBConnection.Execute strSQL
End If
Set DBConnection = Nothing
это сообщение об ошибке, которое я получаю:
"[MySQL] [ODBC 5.2 (w) Driver] [mysqld-5.5.35-MariaDB] У вас есть ошибка в синтаксисе SQL, проверьте руководство, соответствующее версии сервера MariaDB, для правильного синтаксиса"
Странно то, что когда я отправляю один оператор вставки, он отлично работает. Я действительно понимаю, что обходным путем было бы послать эти заявления один за другим, но это не кажется оптимальным решением.
Заранее спасибо, любая помощь будет очень оценена.
Проблема заключается в том, что вы пытаетесь выполнить несколько действий в одном подключении ADODB, и кажется, что вы не единственный человек с этой проблемой, если вы смотрите в нужные места. Одним из решений, которое я видел, является использование синтаксиса вставки нескольких строк:
INSERT INTO tblWydatkiPLN(
IDDelegacji,
IDKategoria,
IDTypTransakcji,
Kwota,
Opis
) VALUES
('13', '3', '1', '44.15', 'Taxi')
, ( '13', '3', '1', '57.71', 'Taxi' )
Возможно, вы найдете следующие полезные статьи (найденные в googling "multiple actions adodb"):