当我尝试发送这个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)驱动程序] [mysqld-5.5.35-MariaDB]你有错误 在你的SQL语法中;查看与MariaDB对应的手册 用于正确语法的服务器版本"
奇怪的是,当我提交单个插入语句时,它完美地运行。 我确实意识到解决方法是逐个发送这些语句 - 但这似乎不是最佳解决方案。
在此先感谢,非常感谢任何帮助。
答案 0 :(得分:1)
问题似乎是当您尝试在单个ADODB连接中执行多个操作时,如果您查找正确的位置,则表明您不是唯一有此问题的人。我见过的一个解决方案是使用多行插入语法:
INSERT INTO tblWydatkiPLN(
IDDelegacji,
IDKategoria,
IDTypTransakcji,
Kwota,
Opis
) VALUES
('13', '3', '1', '44.15', 'Taxi')
, ( '13', '3', '1', '57.71', 'Taxi' )
您可能会发现以下文章很有帮助(通过Google搜索"多个操作adodb"找到):