【发布时间】:2014-04-11 19:50:27
【问题描述】:
我希望这是一个简单的问题。
如果我通过 Excel 运行 ODBC 连接,我会得到我期望从数据库中看到的内容。当我将查询移植到 Xampp 进行测试时,我无法让查询在结果中显示小数点后第四位。
这是我在 Excel 中定义的 SQL 查询:
SELECT MC_BOM_DETAIL.finished_item, MC_BOM_DETAIL.item_num, MC_BOM_DETAIL.quantity, MC_BOM_DETAIL.line_num, IC_INVENTRY_MAST.um_stocking
FROM IC_INVENTRY_MAST IC_INVENTRY_MAST, MC_BOM_DETAIL MC_BOM_DETAIL
WHERE IC_INVENTRY_MAST.company = MC_BOM_DETAIL.company AND IC_INVENTRY_MAST.item_num = MC_BOM_DETAIL.item_num
ORDER BY MC_BOM_DETAIL.finished_item, MC_BOM_DETAIL.line_num
执行查询的php页面如下
//Define ODBC Connection
$mas_conn = odbc_connect("odbc_connection", "user_name", "password");
//Define Query
$query = "SELECT mbd.finished_item, mbd.item_num, mbd.line_num, mbd.quantity, icm.um_stocking
FROM IC_INVENTRY_MAST icm, MC_BOM_DETAIL mbd
WHERE icm.company = mbd.company AND icm.item_num = mbd.item_num
ORDER BY mbd.finished_item, mbd.line_num";
if($result=odbc_exec($mas_conn, $query)) {
while(odbc_fetch_row($result)){
echo odbc_result($result,'quantity') .'<br>';
}
}
odbc_free_result($result);
odbc_close($mas_conn);
结果总是被截断(不四舍五入)到小数点后第三位,但我需要精确到第四位。
我查看了 php.ini 文件,看看这是否可能是原因,但没有完成。
有人有什么建议吗?
感谢您的宝贵时间。
解决方案: 我的问题在于源数据中的数据定义。这有点棘手,因为数据库是只读的,并且 ODBC 驱动程序由第 3 方 (ProvideX) 提供。在与软件制造商的技术人员交谈后,我能够更改设置为十进制(8,3)的数据定义。为什么 Excel 可以读取第 4 位小数而 php odbc 连接无法读取仍然没有答案。我唯一的想法是因为 Excel 在本地运行。
【问题讨论】: