MySQL ODBC
从3.51.18
版本开始支持一次提交多个语句(请参考:http://dev.mysql.com/doc/connector-odbc/en/connector-odbc-configuration-connection-parameters.html)。方法是要给odbc.ini
的数据源配置值为67108864
的option
。如下图所示:
[DB1]
......
option = 67108864
注意这个option
一定要配在odbc.ini
的数据源上,而不能配在odbcinst.ini
的驱动上。因为MySQL
的ODBC
代码只从odbc.ini
文件查找option
:
int ds_lookup(DataSource *ds)
{
......
for (used= 0; used < size; used += sqlwcharlen(entries) + 1,
entries += sqlwcharlen(entries) + 1)
{
int valsize;
ds_map_param(ds, entries, &dest, &intdest, &booldest);
if ((valsize= SQLGetPrivateProfileStringW(ds->name, entries, W_EMPTY,
val, ODBCDATASOURCE_STRLEN,
W_ODBC_INI)) < 0)
{
rc= 1;
goto end;
}
else if (!valsize)
;
else if (dest && !*dest)
ds_set_strnattr(dest, val, valsize);
else if (intdest)
*intdest= sqlwchartoul(val, NULL);
else if (booldest)
*booldest= sqlwchartoul(val, NULL) > 0;
else if (!sqlwcharcasecmp(W_OPTION, entries))
ds_set_options(ds, ds_get_options(ds) | sqlwchartoul(val, NULL));
RESTORE_MODE();
}
......
}
验证这个配置项是否成功,可以通过wireshark
查看建立连接时的抓包:
可以看到“Multiple Statements
”值为1
,设置成功。