我有一个 Delphi/C++ 构建器应用程序,它使用 Firedac 通过 ODBC 连接连接到 Sybase ASE 数据库。连接到数据库时,如果我使用数据库的系统管理员 (SA) 用户 ID/密码,一切正常,并GetTableNames
返回数据库中的表列表。但是,如果我使用普通用户连接到数据库,则GetTableNames
返回一个空列表。我的问题是,我应该给普通用户什么权限才能让它工作。
作为一个附带问题,有谁知道 Firedac 向数据库发送什么样的命令来获取表名?
我在 Delphi 中的代码如下所示:
DBConnection.GetTableNames('', '', '', tableNameList, [TFDPhysObjectScope.osMy], [TFDPhysTableKind.tkTable]);
在 C++ Builder 中,它看起来像:
DBConnection->GetTableNames(L"", L"", L"", tableNameList, TFDPhysObjectScopes() << TFDPhysObjectScope::osMy, TFDPhysTableKinds() << TFDPhysTableKind::tkTable);
谢谢
山姆